GrocRe is a web application designed to help you personalize your meal planning experience. GrocRe leverages AI to provide you with recipes, nutritional facts, and a shopping list for meal preparation. Share your plans and discover new recipes through our built-in social network.
Clone to local machine
git clone [email protected]:Betelgeuse-Blasters/GrocRE.git
Install node dependencies for the client
cd frontEnd
npm install
Install node dependencies for the server
cd server
npm install
Clone the env file in the server
DATABASE_URL="postgresql://johndoe:randompassword@localhost:5432/mydb?schema=public"
API_KEY= OPENAI KEY HERE
Generate a Prisma instance using:
npm run generate
Kayla Loizzo - Project Manager | AI Page
Mike Gamba - Architecture | Meal Editing
Kevin Glidden - UI/UX | Meal Editing
Liam McEneaney - AI Page
Kiel Fuller - Social Page
Jung Hoan Kim - Social Page
Anime.js
OpenAI
Development
Our team worked in a one-week sprint to deliver a minimum viable product (MVP) for our client. We focused on agile methodology, daily standups, and continuous feedback loops for smooth collaboration.
Our main challenge was integrating various technologies in our stack to create a coherent, user-friendly application. One particular challenge was making efficient OpenAI API calls to retrieve recipes and nutritional data. Rendering this information effectively on the front-end required careful planning. Tying together the backend and organizing the data in a logical manner was crucial for seamless collaboration across different components of the project.
Authentication posed a recurring challenge throughout development. Initially, we planned to use Auth0 for handling session and user logins. However, the steep learning curve and time constraints forced us to pivot to a custom authentication process. Another challenge was aligning coding conventions among team members, especially when building upon each other's work.
When a user interacts with GrocRe, data is processed through our Node.js/Express server and stored in a PostgreSQL database using our ORM of choice, Prisma. This information is then relayed back to the user interface.
We conducted research on interacting with OpenAI, optimizing tokens, and prompting. We also learned a great deal about Agile project management, which played a crucial role in our workflow.
We followed an Agile workflow, maintained a Trello board for ticketing, conducted daily standups, and periodically reviewed our code. This process taught us the importance of regular communication, efficient task delegation, and timely feedback. Details on our Git workflow are provided in a section below.