Presentation: https://docs.google.com/presentation/d/1O1hMb0q88Y8B75xORcmrK6DbuDEdomEy/edit?usp=sharing&ouid=103104202947156141205&rtpof=true&sd=true
Fit & Meet is a robust and feature-rich RESTful API that powers a fitness training management system. Developed as part of a Software Engineering course project, this API provides all the required endpoints for managing users, trainers, trainees, and user profile operations efficiently.
-
User Management: Support for full CRUD (Create, Read, Update, Delete) operations on user accounts, facilitating seamless management of user data.
-
Authentication: Secure and stateless authentication using JSON Web Tokens (JWTs).
-
Profile Management: Users can retrieve, update, and delete their profiles and perform sensitive operations like changing their password.
-
Trainer and Trainee Management: Specialized endpoints for managing trainer and trainee accounts. Trainers can create professional profiles and publish training programs. Trainees can search for trainers based on specialization, register for training sessions, and track their progress.
-
Python + Flask: The API is built using Python and Flask, which provides structure for organizing the application into units of functionality, and utilities for routing, handling requests and generating responses.
-
Flask-RESTX: An extension for Flask that adds support for quickly building REST APIs while providing user-friendly Swagger UI documentation.
-
Flask-JWT-Extended: This extension adds support for JWT-based authentication in our Flask app.
-
SQLAlchemy: It is used to handle database operations smoothly and abstracts the SQLAlchemy Core and ORM to provide a user-friendly solution to manage and query the application data.
-
Clone the Project:
git clone https://github.com/mayarom/Fit-Meet-app.git
-
Setup Environment:
- Create a virtual environment using Python:
python -m venv venv
- Activate the virtual environment:
source venv/bin/activate # For Unix-based OS
.\env\Scripts\activate # For Windows
- Install the requirements:
pip install -r requirements.txt
- Create a virtual environment using Python:
-
Configure Environment Variables:
- Set
FLASK_ENV=development
to enable debug mode, which will allow Flask to provide more in-depth error messages.
- Set
-
Running the Server:
python server.py
The following endpoints are available:
GET /profile/<int:userid>
: Returns the profile of a userGET /profile
: Returns the profile of the currently authenticated userPOST /change-password
: Changes password of the currently authenticated userPOST /edit-profile
: Edits profile of the currently authenticated userDELETE /delete-account
: Deletes account of the currently authenticated user
- Linor Ronen
- Roy Simanovich
- Maya Rom
- Benji Kehat
This project is open source. Contributions are always welcomed. Be sure to fork the repository and work on a branch of your version of the repo. We are looking forward to your open pull requests.
This project is distributed under the MIT License. See LICENSE for more details.