Period. is a web application that aims to track and predict users' menstrual cycles. Based on user-inputted data, the application calculates the average length of each individual's menstrual cycle and menstruation period. Using this information, Period. then extrapolates to find the next few likely start and end days of menstruation, visualizing it on a calendar for the user to see. To maximize convenience, users have the option of connecting their Google Calendar account to add the events to their personal calendar and to receive email notifications on their upcoming periods. Currently, it features a home calendar page and a statistics page.
- Frontend: HTML, CSS, JavaScript
- Backend: Python with a Flask framework and SQLite database
- Google Calendar API, FullCalendar.io, Matlibplot, Sqlalchemy
This was my first experience working on the back-end of a web application and my second with the front-end. Given that I have had limited experience with most of the tools used here, there was a significant learning curve — particularly in integrating the front-end with the back-end and in learning to use the various Calendar APIs. I am particularly proud of my persaverance and commitment to this project, as I was able to finish this within my set timeline even while balancing a full time job. As a bonus, I can definitely imagine using this myself in the near future! After this experience, I would be interested in continuing to explore the use of databases and plotting libraries to make data more easily accessible to individuals.
- Calculating and visualizing more statistics: Percentage accuracy, std. deviation of cycle and menstruation legnth
- Improving user experience: Making the calendar clickable, allowing users to delete events
- Exploring the use of neural networks to make increasingly accurate predictions — particularly for users with irregular periods
- Implement Google Calendar's incremental authorizations