Inspiration

The inspiration behind our app was other period apps on the market, such as Clue and Flo.

What it does

Lumi Cycles allows users to put in the date of their period and predict when their next one will occur. It also allows users to learn about different phases of the menstrual cycle, as well as different symptoms that occur because of it.

How we built it

We used python on Replit to build our project. The main functionality is a series of if statements within a while loop with a variable that determines whether or not the user is currently still using the app. First, the app greets the user and then requests for whether or not they're on their period currently and also the date of the last day of their period. Then, the program will ask for the current date and store the amount of days until the user's next period based on how many days are in a menstrual cycle. After this data is retrieved, the program will open a list of options and the user can go through and choose which one they want to use. The first one is to predict their next period, which will display the stored amount of days from before to the user. The second option is to learn about menstrual phases, which will lead to another set of options and each option can be chosen to learn about that specific phase. This is done through a series of if/elif statements and each option is numbered so the user will simply type in what number they'd want to learn about and then the program will display what's associated with it. Options 3 and 4 are similar in the sense that they both display lines of information one at a time using time.sleep, while also giving users enough time to read each line. Option 3 is mood swings and option 4 is cravings. The last option is to quit. If this option is chosen, then the while loop will end as the "continue" variable will be changed to False. Throughout the program, os.system is used to clear and refresh the console.

Challenges we ran into

The biggest challenge we faced was using the datetime library. We had never worked with it before but we really wanted to implement tracking into this program so we had to learn it. It was pretty confusing but eventually we learned as much as we needed to. However we still don't know how to use the library to account for if the uesr's period is not in the same month as they're using the program as it results in a negative amount of days until their next period.

Accomplishments that we're proud of

We're very proud of doing this program in general as it's our first hackathon and one of our group members first ever coding project. We're also proud of creating a diverse program with lots of options but one that's still organized and easy to use.

What we learned

We learned a lot more about menstrual cycles, but also about how to present information in a program in an organized and appealing way. We learned how to use a new library and also how to use it to some extent.

What's next for Lumi Cycles

We would love to be able to make this app more personal to the user. Maybe add a system to track the user's mood and cravings, similar to how other period apps do.

Built With

Share this project:

Updates