Through developing PrepMate, I gained valuable experience in both front-end and back-end web development. I learned how to effectively use Flask to build a full-stack web application, from routing to handling user inputs and interacting with a database. Working with SQLite3 helped me understand database design and SQL queries to manage data efficiently. On the front-end, I became proficient in using Jinja for dynamic templating and Tailwind CSS for responsive, modern styling without custom CSS.
Additionally, I learned how to scale applications to handle user input dynamically, and the importance of creating clear and efficient user interfaces. The process of connecting the database, writing SQL queries for meal and grocery list management, and ensuring a smooth user experience was a significant learning experience.
One of the main challenges was ensuring the correct scaling of ingredients based on the number of servings selected by the user. I needed to create a robust system for calculating quantities and units, while also considering that different meals might have different ingredient types and quantities. This required a lot of trial and error, testing various approaches to scale the ingredients and generate the grocery list.
Another challenge was organizing the data in the database. I had to make sure that the relationships between meals, ingredients, and servings were structured properly, so that data could be fetched and updated without errors. Integrating the grocery list and dynamically updating quantities when meals were added or removed also presented a challenge.
Finally, I wanted to make the user interface as intuitive as possible while keeping the styling minimal and modern. Tailwind CSS helped a lot in achieving this, but I still had to iterate several times to make sure the app’s layout was responsive and easy to use.
Log in or sign up for Devpost to join the conversation.