Skip to content

Setup Local Development

This guide will walk you through setting up a local development environment for the PMB HIMARPL website.

Prerequisites

Before installing the application, ensure you have:

  1. Node.js and npm installed
  2. Git installed
  3. Access to the following services:
    • CockroachDB account
    • PostHog account (optional)

Environment Setup Details

The project requires several environment variables to be set up in a .env file for proper functionality.

CockroachDB Setup

Follow the CockroachDB Quickstart Guide to get your DATABASE_URL.

Setup Steps

  1. Fork and clone the repository:

    HTTPS
    git clone https://github.com/himarplupi/pmb-himarpl.git
  2. Navigate to project directory:

    Terminal window
    cd pmb-himarpl
  3. Create environment variables file: Create a .env file in the root directory with the following variables:

    Terminal window
    DATABASE_URL=
    NEXT_PUBLIC_BASE_URL="http://localhost:3000"
    NEXT_PUBLIC_BASE_PATH=""
    NEXT_BASE_URL="http://localhost:3000"
    NEXT_PUBLIC_POSTHOG_KEY=
    NEXT_PUBLIC_POSTHOG_HOST=https://us.i.posthog.com
  4. Set up remote upstream:

    HTTPS
    git remote add upstream https://github.com/himarplupi/pmb-himarpl.git
  5. Install dependencies and start development server:

    Terminal window
    npm ci # Install dependencies
    npm run db:push # Push database schema to CockroachDB
    npm run dev # Start development server

    The application should now be running at http://localhost:3000.

  6. Create a new branch for your changes:

    Terminal window
    git checkout -b my-feature-branch
  7. After you are satisfied with your changes, add and commit them to your branch, then push your branch to your fork.

    Terminal window
    git add .
    git commit # Please follow the commit guidelines below
    git push -u origin my-feature-branch
  8. Create Pull Request.

Available Scripts

  • npm run dev - Starts development server with hot reload
  • npm run build - Creates production build
  • npm run start - Starts production server
  • npm run db:push - Pushes database schema to CockroachDB
  • npm run db:studio - Opens Prisma Studio for database management
  • npm run lint - Runs linting checks