A simple and interactive fitness tracking application built with multiple microservices and programming languages. This application allows users to track their exercises and monitor their progress over time.
The Activity Tracking functionality uses the MERN stack (MongoDB, Express.js, React, Node.js), the Analytics service uses Python/Flask and the Authentication Microservice using Java.
- User registration for personalized tracking
- Log various types of exercises with descriptions, duration, and date
- See weekly and overall statistics
- Interactive UI with Material-UI components
- Real-time data persistence with MongoDB
- Node.js
- MongoDB
- npm or yarn
- Python Flask
- Java 8 (all already installed in the devcontainer)
- Click on "Code"
- Switch to the "Codespaces" tab
- Create new Codespace from main
- Open Codespace in VS code for best experience:
Walktrough:
sh .devcontainer/check-installation.sh
expected output:
Checking installations...
node is /usr/local/bin/node
node is installed with version: v18.16.0
npm is /usr/local/bin/npm
npm is installed with version: 9.5.1
python3 is /usr/bin/python3
python3 is installed with version: Python 3.9.2
pip3 is /usr/bin/pip3
pip3 is installed with version: pip 20.3.4 from /usr/lib/python3/dist-packages/pip (python 3.9)
gradle is /usr/bin/gradle
gradle is installed with version:
------------------------------------------------------------
Gradle 4.4.1
------------------------------------------------------------
......
Done checking installations.
if you're missing any version, please contact your course administrator.
docker-compose up --build
docker-compose up
docker-compose up [servicename]
docker-compose down [servicename]
cd activity-tracking
npm install
nodemon server
cd analytics
flask run -h localhost -p 5050
cd authservice
./gradlew clean build
./gradlew bootRun
cd frontend
npm install
npm start
docker run --name mongodb -d -p 27017:27017 -v mongodbdata:/data/db mongo:latest
mongosh -u root -p cfgmla23 --authenticationDatabase admin --host localhost --port 27017
show registered activities:
db.exercises.find()
show registered users:
db.users.find()
The application is containerized using Docker and can be deployed on any platform that supports Docker containers. For AWS deployment, a GitHub Actions pipeline is configured for CI/CD.