Period Tracking Backend is a Django project designed to provide backend functionality for period tracking applications. It includes features such as user authentication, user details management, period tracking, and data retrieval.
- User authentication: Allows users to register, login, and manage their accounts securely.
- User details management: Enables users to update their personal information such as name, date of birth, and physical attributes.
- Period tracking: Facilitates the tracking of menstrual cycles, including start and end dates, cycle lengths, and symptoms.
- Data retrieval: Provides endpoints to fetch user-specific period data for analysis or visualization.
- Period Prediction: Utilizes historical period data to forecast future menstrual cycles, aiding users in planning and preparation.
- Python 3.x
- Django
- Django REST Framework
- MongoDB
- RabbitMQ
Documentation for APIs in Postman
To install and run the project locally, follow these steps:
- Clone the repository:
git clone https://github.com/VishSinh/Period-Tracker.git
- Navigate to the project directory:
cd period-tracker
- Install dependencies:
pip3 install -r requirements.txt
- Make command exceutable:
chmod +x start_server.sh
- Start server in DEBUG mode:
./start_server.sh
- Start server in PRODUCTION mode
./start_server.sh true
celery -A period_tracking_BE worker --loglevel=info
celery -A period_tracking_BE beat --loglevel=info
To run this project, you will need to add the following environment variables to your .env file
SECRET_KEY
SESSION_SECRET_KEY
SESSION_EXPIRY
USER_ID_HASH_SALT
CELERY_BROKER_URL
RATE_LIMIT
RATE_LIMIT_WINDOW