A simple FastAPI web application for registering students and tracking their weekly progress during the Cloud Native Series.
- Register new students (generates a unique ID).
- Track weekly progress for each student.
- All students use one central MongoDB (hosted on MongoDB Atlas or similar).
- Simple endpoints for registration, status check, and progress update.
- Python 3.10+
- Git
- MongoDB Atlas account (to get your connection string)
git clone https://github.com/chisomjude/student-project-tracker.git
cd student-project-trackerpython3 -m venv venv
source venv/bin/activate # On Windows use: venv\Scripts\activate
pip install -r requirements.txt- At this stage you need to export your vault credentials given :
export VAULT_TOKEN=
uvicorn app.main:app --host 0.0.0.0 --port 8000 --reloadVisit http://vmip:8000 to see your app in action.
write a dockerfile to build the app, your dockerfile should sit at the root directory of this project - ie student-project-tracker
docker build -t student-tracker .- At this stage you need to export your vault credentials before you run the app to ensure the app can access vault, the run the command below to run the app
docker run --env-file .env -p 8000:8000 student-trackerEnsure you're logged in, create a account with dockerhub if you dont have one.
docker loginTag and push your image:
docker tag student-tracker your-dockerhub-username/student-tracker
docker push your-dockerhub-username/student-tracker| Method | Endpoint | Description |
|---|---|---|
| POST | /register?name=YourName |
Register new student |
| GET | /status/{student_id} |
View registration and progress |
| POST | /update/{student_id}?week=week1 |
Update progress by week |
You can deploy the app on platforms like:
- Render
- Railway
- Fly.io
- Azure App Service
- Elastic Beanstalk or more
This project is used for learning cloud-native tools and Hands-on Project.
Feel free to fork and extend it!