- You can choose to develop individual microservices within separate folders within this repository OR use individual repositories (all public) for each microservice.
- In the latter scenario, you should enable sub-modules on this GitHub classroom repository to manage the development/deployment AND add your mentor to the individual repositories as a collaborator.
- The teaching team should be given access to the repositories as we may require viewing the history of the repository in case of any disputes or disagreements.
- Install Docker Desktop
- Clone the GitHub repository
git clone https://github.com/CS3219-AY2425S1/cs3219-ay2425s1-project-g03.git
Step 1: Copy Environment Configuration File
To get started, copy the contents of .env.sample into a new .env file located at the root level of the project.
Step 2: Build the Docker containers
Next, run the following command to build the Docker containers.
docker compose -f compose.yml build --no-cacheStep 3: Start the Docker containers
Once the build is complete, you can start the Docker containers.
docker compose -f compose.yml up -dAfter spinning up the services, you may access the frontend client at 127.0.0.1:4200. Specifically, you can navigate
to the Question SPA at 127.0.0.1:4200/questions and the login page at 127.0.0.1/account.
If you would like to spin up the services in development mode, you may use the following command. This enables hot reloading and exposes the ports for all microservices.
docker compose -f compose.yml -f compose.dev.yml up -d| Service | Port |
|---|---|
| Frontend | 4200 |
| API Gateway | 8080 |
| Question Service | 8081 |
| User Service | 8082 |
| Match Service | 8083 |
| Collaboration & Room Service | 8084 |
| History Service | 8085 |
Step 4: Stop the Docker containers
Once you are done, stop and remove the containers using:
docker compose down -vNote that this will clear any data stored in volumes associated with the containers. If you would like to keep your
data, you can run the command without the -v flag, which will remove the containers but retain the data in the volumes
for future use.