{"id":25617824,"url":"https://github.com/thestutirajeev/CoffeeShopApp","last_synced_at":"2026-05-21T10:30:17.851Z","repository":{"id":278617402,"uuid":"936054522","full_name":"thestutirajeev/CoffeeShop-SpringBoot","owner":"thestutirajeev","description":"☕ Coffee Shop Menu - Spring Boot Project 📌 The Coffee Shop Menu is a full-stack web application built using Spring Boot. Used thymeleaf for better integration with Spring Boot. Incorporated Spring Data JPA to make the application fully dynamic, allowing CRUD operations.","archived":false,"fork":false,"pushed_at":"2025-02-21T15:45:58.000Z","size":23,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-22T05:29:15.960Z","etag":null,"topics":["java","jpa","jpa-hibernate","jsp","mysql-database","spring","spring-boot","spring-data","thymeleaf"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thestutirajeev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-20T13:05:55.000Z","updated_at":"2025-02-21T16:17:56.000Z","dependencies_parsed_at":"2025-02-22T05:29:16.415Z","dependency_job_id":null,"html_url":"https://github.com/thestutirajeev/CoffeeShop-SpringBoot","commit_stats":null,"previous_names":["thestutirajeev/cofeeshop-springboot","thestutirajeev/coffeeshop-springboot"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thestutirajeev%2FCoffeeShop-SpringBoot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thestutirajeev%2FCoffeeShop-SpringBoot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thestutirajeev%2FCoffeeShop-SpringBoot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thestutirajeev%2FCoffeeShop-SpringBoot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thestutirajeev","download_url":"https://codeload.github.com/thestutirajeev/CoffeeShop-SpringBoot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240131764,"owners_count":19752725,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","jpa","jpa-hibernate","jsp","mysql-database","spring","spring-boot","spring-data","thymeleaf"],"created_at":"2025-02-22T05:29:19.538Z","updated_at":"2026-05-21T10:30:15.797Z","avatar_url":"https://github.com/thestutirajeev.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ☕ Coffee Shop Menu - Spring Boot Project  \n\n## **📝 Project Overview**  \nThe **Coffee Shop Menu** project is a **full-stack web application** built using **Spring Boot**, designed to manage a dynamic menu for a coffee shop. \nInitially, we started with **JSP (Java Server Pages)** for rendering views, then transitioned to **Thymeleaf** for better integration with Spring Boot, \nand finally integrated **Spring Data JPA** for dynamic data management using a database.  \n\n---\n\n## **🔧 Technologies Used**  \n- **Backend:** Spring Boot, Spring MVC, Spring Data JPA  \n- **Frontend:** JSP (initially) → Thymeleaf  \n- **Database:** H2 (for development) / MySQL (for production)  \n- **ORM:** Hibernate (via JPA)  \n- **Build Tool:** Maven  \n- **Server:** Embedded Tomcat  \n\n---\n\n## **📌 Evolution of the Project**  \n\n### **🛠️ Phase 1: Static Menu with JSP**  \nInitially, we built the project using **JSP (Java Server Pages)** for rendering views. In this phase:  \n✅ **Hardcoded menu items** in JSP pages  \n✅ **Controllers handled basic navigation** (`@RequestMapping`)  \n✅ **No database integration**, all data was static  \n\n💡 **Why We Shifted Away from JSP?**  \n- JSP requires **a lot of boilerplate code**  \n- Mixing Java logic inside JSP leads to **poor maintainability**  \n- **Spring Boot prefers Thymeleaf** for better integration  \n\n---\n\n### **✨ Phase 2: Migration to Thymeleaf**  \nTo improve integration with Spring Boot and simplify UI rendering, we switched to **Thymeleaf**, which allows embedding **dynamic data** directly in HTML.  \n\n✅ **Better HTML \u0026 Spring Boot integration**  \n✅ **No need for JSP Servlet configurations**  \n✅ **More readable and maintainable UI templates**  \n\n💡 **Why Thymeleaf?**  \n- Works **seamlessly with Spring Boot**  \n- Supports **dynamic data binding** without Java code in HTML  \n- More **modern and maintainable**  \n\n---\n\n### **🚀 Phase 3: Making the Application Dynamic with JPA**  \nTo move from a **static menu** to a **fully dynamic system**, we integrated **Spring Data JPA** with Hibernate. Now, all menu items are **stored in a database**, allowing CRUD operations.  \n\n✅ **Menu items stored in the database**  \n✅ **Spring Data JPA used for persistence**  \n✅ **Users can add, update, and delete menu items**  \n\n#### **1️⃣ Creating the Product Entity**\n#### **2️⃣ Defining the Repository Interface**\n#### **3️⃣ Creating a Service Layer**\n#### **4️⃣ Using JPA Data in Thymeleaf**\n\n## **📌 Features Implemented**  \n✅ Display a **dynamic menu** with items stored in the database  \n✅ **CRUD operations** (Add, Update, Delete) for menu items  \n✅ **Thymeleaf templates** for rendering dynamic views  \n✅ **Spring Boot \u0026 Hibernate integration**  \n✅ **H2 database for development**, MySQL for production  \n\n---\n\n## **⚡ How to Run the Project**  \n\n1️⃣ **Clone the Repository:**  \n```sh\ngit clone https://github.com/your-username/coffee-shop-menu.git\ncd coffee-shop-menu\n```\n\n2️⃣ **Run the Spring Boot Application:**  \n```sh\nmvn spring-boot:run\n```\n\n3️⃣ **Access the App in Browser:**  \n```\nhttp://localhost:8082\n```\n---\n\n## **📜 Conclusion**  \nThis project showcases the evolution of a Spring Boot web application:  \n✅ **Started with JSP for static content**  \n✅ **Migrated to Thymeleaf for better templating**  \n✅ **Integrated JPA for full database-driven functionality**  \n\nThis transition **made the project more scalable, maintainable, and dynamic**. 🚀  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthestutirajeev%2FCoffeeShopApp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthestutirajeev%2FCoffeeShopApp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthestutirajeev%2FCoffeeShopApp/lists"}