Inspiration
We decided on Momento out of the realization that college students are really busy, so many of us face challenges in coordinating meetings, study sessions, and social gatherings. We had a goal of creating an intuitive platform that simplified the scheduling process, while also creating a platform that looked nice, and made it easy for students to find common times within the back-and-forth of traditional planning.
What it does
Currently, the website registers users and gives them an individual calendar. This calendar allows users to create events every day, including who they want to invite, at what time, and the title. We store the user’s information on their interests so we can make a matching system with other users in the future.
How we built it
Back End We utilized a flask-powered backend, due to its simplicity and flexibility. For storing data and management, we used Google Firestore (cloud database). It allowed us to store and query user profiles. We also integrated Google Calendar using its API and using OAuth for secure authentication. We used JSON Web Tokens for secure authentication, where passwords are hashed before storage, and communication with the backend is encrypted to safeguard user data.
Front End We first started with compiling information on the design, style, color, and features we wanted to include on our website and on the front end side. After that, we agreed on using html and css as the main languages because it was beginning to be friendly and most of us had an idea and experience with html. We divided the web pages into three files, one for the initiation landing page, one for user registration, and another for the calendar we were trying to build. We asked Chat GPT and mentors to guide us through the process in fixing some errors, what parameters and variables to change, and what functions to use. For the calendar page, our developer watched multiple YouTube tutorials and combined the necessary code to create one calendar that matched Momento’s vision.
Challenges we ran into
Connecting the frontend and backend was a significant hurdle. Additionally, integrating calendar services presented challenges in dealing with APIs and accommodating different time zones. It was difficult to store the event information and allow the user to input multiple events for one day. Ultimately, we decided to stick to one event per day and allow for more features (time and collaboration with others).
Accomplishments that we're proud of
Our entire team is full of beginners who haven’t dealt with frontend or backend extensively before. We tried our best to follow Youtube tutorials, analyze source codes from other individuals, and piece together our knowledge. Three out of four of us had no previous experience in html, css, and javascript, and were tasked with creating an entire page, which was quite daunting. However, we were able to create 3 individual pages and implement simple features. As for the backend, we were able to connect to Google Cloud services (firestore) and created secure authentication systems with JSONWT.
What we learned
For our front-end developers, we all learned how to improve our programming in HTML, CSS, and Javascript. We started with minimal knowledge and are now able to analyze code and implement what we need in our own programs. It was also all of our very first hackathons, so being able to experience one was a growing experience in how to design, develop, and work in a team on a programming project.
On the back-end side of things, we learned how to utilize Python code and Flask to store and manage data, while also being able to connect to Google Services and use Fire Store. We also learned to navigate third-party APIs for calendar integration and the importance of a user-centered design philosophy in creating intuitive and effective software solutions.
What's next for Momento
We hope to enhance Momento with additional features like event reminders, customizable notification settings, a customizable website interface, and support for more calendar services. We plan to refine the matching algorithm to offer more flexible scheduling options.
We also hope to expand and fully develop Momento in adding an AI suggestion engine based on users interests, frequency at places they eat, and places they go in order to make it easier to plan hangouts, dates, and social events. Based on their information when scheduling with other users, Momento will output a suggested time and suggested hang out or place to eat based on common interests or where users have been before.
Built With
- cloud-firestore
- css
- firestore
- flask
- google-calendar
- google-cloud
- google-firestore
- google-gmail-oauth
- html
- javascript
- json
- json-web-token
- nosql
- oauth
- python
Log in or sign up for Devpost to join the conversation.