/monorepo

kamp.us web projects & packages

Primary LanguageTypeScriptMIT LicenseMIT

@kampus/monorepo

kamp.us web projects & packages

IMPORTANT NOTE

This repository is under heavy development, if you want to contribute either go through package.json file of each workspace and start familiarizing yourself with the technologies we are using or join our discord server and say hi to us at #kampus-projects channel.

Getting started

1. Cloning the project

  • Fork kamp-us/monorepo under your personal account.
    • eg: usirin/monorepo
  • Clone the project to your local computer:
# Download Repository
git clone git@github.com:kamp-us/monorepo.git
# Move into repository
cd monorepo
  • Install dependencies.
npm ci

2. Modifying hosts file

127.0.0.1 localhost.kamp.us
127.0.0.1 pasaport.localhost.kamp.us
127.0.0.1 pano.localhost.kamp.us
127.0.0.1 sozluk.localhost.kamp.us
127.0.0.1 gql.localhost.kamp.us

3. Setting up .env files

  • Duplicate .env.example files and rename them as .env in the following folders: db/prisma, apps/gql, apps/kampus, apps/pasaport.

4. Prisma Setup and Database Configuration

  • Move to db/prisma folder.
cd db/prisma
  • Start the image. (You should have docker installed.)
docker-compose up -d
  • Generate artifacts. (e.g. Prisma Client)
npm run prisma:generate
  • Push the Prisma schema state to the database.
npm run prisma:push
  • Run seed command to fill database with demo data.
npm run prisma:seed

5. Running dev servers

  • Run the command below at the root folder.
# Runs "gql", "kampus" and "pasaport" apps so the platform can be alive with 1 command.
npm run web
  • Now you can go to localhost.kamp.us:3000 to see it live. 🚀
# Runs all "dev" commands on each package inside the workspace
npm run dev
# Runs only "gql" server so backend work can be done separately.
npm run gql

6. Logging in on development server(optional)

6.1 GitHub

# apps/kampus, apps/pasaport
GITHUB_ID=<Your_Client_ID>
GITHUB_SECRET=<Your_Client_Secret>
  • Now you can use Sign in with GitHub on development server.

Structure

  • /apps: services & apps
  • /db: packages that is relevant to database
  • /config: packages that is relevant to configuration
  • /packages: internal (and maybe external in the future) npm packages

These folders are registered as workspaces in package.json

Use Correct Node Version

If you haven't already install Volta, you can install install it with:

curl https://get.volta.sh | bash