
Experienced developers often say that if you want to build an application, you should focus on something connected to your interests. As someone passionate about bodybuilding, I decided to create an application for people who care about their diet and tracking their calorie intake.
Smart Menu is a full-stack application that generates a personalized weekly meal plan for each user according to their goals, body parameters, and food preferences. The plan is then delivered in PDF format via email. I built this application using my primary stack: Spring Framework and React (TypeScript).
Here's how the workflow looks: during registration, the user enters their parameters (height, weight, age, sex), goals (cut, bulk, maintenance), and food preferences. Based on this information, the program sends a request to the OpenAI API, which returns a JSON object containing a weekly meal plan. This JSON is converted into a readable PDF file using the Apache PDFBox library, and then sent to the user's email address via SMTP. The program runs automatically every Monday morning, scheduled with Spring Scheduler. Users can update their information at any time in the settings.
Finally, Smart Menu is deployed on a DigitalOcean Droplet using a Docker image.