A web-based period tracking application built with HTML, CSS, Python, Flask, and SQLite.
The application allows users to record their menstrual cycles, view their cycle history, and see estimated information about their upcoming cycle.
Note: Cycle and fertility dates shown by this application are estimates for tracking purposes and should not be treated as medical advice or as a reliable method of contraception.
- Period tracking
- Cycle day display
- Estimated next period
- Estimated ovulation date
- Estimated fertile window
- Period history
- Responsive user interface
- User registration and login
- Secure password storage
- Symptom tracking
- Calendar view
- Edit and delete period records
- Cycle statistics
- Charts and visualizations
- Mobile-friendly interface
- HTML5
- CSS3
- JavaScript
- Python
- Flask
- SQLite
period-tracker/
│
├── app.py
├── database.db
├── requirements.txt
├── README.md
│
├── templates/
│ ├── base.html
│ ├── index.html
│ ├── login.html
│ ├── register.html
│ ├── dashboard.html
│ ├── log_period.html
│ └── history.html
│
└── static/
├── style.css
├── history.css
└── js/
└── script.js
git clone https://github.com/itunumide/period-tracker.gitcd period-trackerpython -m venv venvvenv\Scripts\activatesource venv/bin/activatepip install -r requirements.txtStart the Flask development server:
python app.pyOpen your browser and visit:
http://127.0.0.1:5000
The user provides information such as:
- Period start date
- Period length
- Average cycle length
The application uses this information to calculate estimates such as:
Period start date
|
v
Current cycle day
|
v
Estimated next period
|
v
Estimated ovulation
|
v
Estimated fertile window
These calculations are intended for personal tracking and are not medical predictions.
The application uses SQLite to store user and cycle information.
id
name
email
password
created_at
id
user_id
start_date
end_date
cycle_length
period_length
created_at
id
user_id
period_id
symptom
severity
date
Period and symptom information can be sensitive personal data.
The application should:
- Hash passwords instead of storing them as plain text
- Ensure users can only access their own records
- Validate submitted data
- Protect authenticated routes
- Use secure sessions
- Use HTTPS when deployed
- Avoid collecting unnecessary personal information
This project is currently under development.
- Create project structure
- Create initial Flask application
- Create dashboard template
- Style dashboard
- Create registration page
- Create login page
- Set up SQLite database
- Add user authentication
- Add period logging
- Add cycle calculations
- Add period history
- Add symptom tracking
- Add calendar
- Add charts
- Test application
- Deploy application
This project is being developed to practice:
- HTML
- CSS
- JavaScript
- Python
- Flask
- SQLite
- SQL
- CRUD operations
- Authentication
- Backend development
- Frontend and backend communication
- Date and time calculations
This application is designed for educational and personal tracking purposes.
Period, ovulation, and fertile-window dates are estimates and can vary between individuals and between cycles. The application does not provide medical diagnosis, treatment, or guaranteed fertility information.
For medical questions or concerns about your menstrual cycle, consult a qualified healthcare professional.
This project is currently intended for educational purposes.