Intelligent Tutoring System (ITS) is a platform that can provide high-level feedbacks to coding assignment automatically. It aims to alleviate the workload required for grading coding assignments.
This project represents the frontend user interfaces of the ITS platform. We are running microservice architecture on the project:
├── backend
│ ├── assignment-service
│ ├── user-service
| └── grading-service
├── frontend
├── package.json
├── LICENSE
├── docker-compose.yml
├── .gitignore
└── README.md
Before running the project, make sure you have access to the following:
- NodeJS environment with version 20 and above
- Environmental secrets for each microservice
Follow these steps to set up and run the project for local development:
- Clone the repository:
git clone https://github.com/tryyang2001/CS3213-Frontend-Management-System.git
- Copy
.env
files obtained from the drive into directories:frontend
,backend/assignment-service
,backend/user-service
, andbackend/grading-service
respectively - At the root directory, run
yarn setup
to install all dependencies for all microservices. Take note that this process might take longer to finish (< 10 mins) - At the root directory, you may start the development server:
yarn dev
To run service individually, you will need to change path directory to the target directory, and follow by yarn dev
. For example, to run only assignment-service
:
cd backend/assignment-service
yarn dev
There are 2 ways to run production build in local environment
Follow these steps to build and run the project in production environment:
- Follow steps 1, 2, and 3 in local development for setting up the project
- At the root directory, you may start the server by running
yarn start
Follow these steps to build and run the project in production environment:
- Clone the repository:
git clone https://github.com/tryyang2001/CS3213-Frontend-Management-System.git
- Copy
.env
files obtained from the drive into directories:frontend
,backend/assignment-service
,backend/user-service
, andbackend/grading-service
respectively - Ensure you have Docker Engine installed, if not check out Docker documentation on how to install Docker Engine. Open Docker Engine
- At the root directory run
docker-compose up
- After all containers are up, run the application at
localhost:80
We are using Containers as an Application (CaaS) approach for our microservices deployment. We chose Azure as the cloud platform with its Azure Container Registry (ACR) for pushing/storing/pulling build images and Azure Kubernetes Service (AKS) for orchestration between services and setting up API gateway using ingress-nginx. The steps of our deployment:
- Authenticate with Azure/ACR/AKS
- Build images for each microservices and push them to ACR
- Execute kuberenetes manifest files in
k8s/startup.yaml
to set up services/deployment and ingress-nginx
You can find the similar deploying flow in our Continuous Deployment (CD) in .github/workflows/CD_to_AKS.yml
If you encountered any problem or need clarification from the developers, kindly contact [email protected].