An API provides the features to manage the thesis graduation for IT students and lecturers
- Docker (required)
- Kubernetes (optional, for advanced usage)
- Minikube (optional, for local development with Kubernetes)
-
Clone this repository
git clone https://github.com/qthuy2k1/thesis-management-backend.git cd thesis-management-backend
-
If you want to use Docker, run the following command
docker compose up
-
If you want to use Kubernetes and Minikube, run the following command
# Run the Minikube minikube start --namespace thesis-management-backend # Create the Kubernetes namespace kubectl create namespace thesis-management-backend # Apply all the kubernetes deployments and services kubectl apply -f kubernetes/ # Expose the service port to the local port minikube tunnel
-
You can access to the Kubernetes dashboard by running the following command
minikube dashboard
-
After all the pods are running, you can use the API right now
- Server architecture
- Database diagram 1.1 Classroom service
1.2 User service
1.3 Schedule service
For the examples, please refer to the api-docs folder
The API requires the following configuration:
-
For authentication, you have to download the firebase admin sdk json file from Firebase Console in the Project Settings. Here is an example of configuration:
{ "type": "service_account", "project_id": "YOUR_PROJECT_ID", "private_key_id": "YOUR_PRIVATE_KEY_ID", "private_key": "YOUR_PRIVATE_KEY", "client_email": "YOUR_CLIENT_EMAIL", "client_id": "YOUR_CLIENT_ID", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url": "YOUR_AUTH_PROVIDER_X509_CERT_URL", "client_x509_cert_url": "YOUR_CLIENT_X509_CERT_URL", "universe_domain": "googleapis.com" }
-
For uploading file, you have to download the credentials file from Google Cloud Console. Here is an example of configuration:
{ "installed": { "client_id":"YOUR_CLIENT_ID", "project_id":"YOUR_PROJECT_ID", "auth_uri":"https://accounts.google.com/o/oauth2/auth", "token_uri":"https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs", "client_secret":"YOUR_CLIENT_SECRET", "redirect_uris":["http://localhost"] } }