ECO-BEAN is an eco-friendly collection-network platform that connects cafés and users to reduce careless disposal of coffee grounds.
This repository hosts the back-end source code.
- 🗺️ Search collection points on a map
- 🧑🍳 Register and manage coffee grounds (for cafés)
- 🤖 AI-powered reuse suggestions
- 📊 Auto-generated environmental impact reports
- ♻️ Promote recycling of coffee grounds
- 👥 Automate matching between users and cafés
- 🧠 Provide AI-powered solutions via Gemini API
- 🌍 Foster eco-conscious behaviour
- Map view centred on the user’s current location
- Clickable markers to open detail pop-ups
- Filters for Café / Public / Enterprise collection points
- Social login via Kakao or Google
- Choose account type: General User or Café Owner
- Register bean information
- Add grounds and accept / reject collection requests
- Manage café profile and opening hours
- View collection request history
- Track status (Pending / Accepted / Completed)
- Access personal contribution reports
- Personalised reuse suggestions (fertiliser, scrub, etc.)
- Analyse environmental contribution using Gemini API
- Visualise carbon reduction and recycling score
- Compare impact between users and cafés
- Share or trade upcycled coffee-ground products
- Community board & discussions
- (Later feature: 1 : 1 Chat)
| Technology | Role |
|---|---|
| Java 17+ | Core language |
| Spring Boot 3.x | API server / core logic |
| Spring Security | Authentication & Authorisation |
| JWT | Stateless auth token |
| OAuth2 Client | Social login integration |
| Spring Data JPA | ORM layer |
| Hibernate | JPA implementation |
| QueryDSL | Type-safe query construction |
| MySQL | Relational database |
| Redis | Cache & real-time data |
| AWS S3 SDK | Image storage |
| Gemini API | AI suggestions & reports |
| SpringDoc (Swagger UI) | API documentation |
| Spring Validation API | Input validation |
| Lombok | Boilerplate reduction |
| SLF4J / Logback | Logging |
| GitHub Actions | CI / CD |
| Technology |
|---|
| TypeScript |
| React |
| Tailwind CSS |
| Google Maps API |
| Zod |
| Firebase Hosting |
- Java 17+
- Docker (Desktop or Engine)
- Gradle (6.8 or later)
-
Clone the repository
git clone <YOUR_BACKEND_REPO_URL> cd SDGP_team2_BE
-
Configure your environment Update
src/main/resources/application.yamland.envto match your local setup. -
Start required middleware The root-level
docker-compose.yamlspins up all necessary containers (MySQL, Redis, …).docker-compose up -d
This
docker-compose.yamlfile is also used in CI/CD pipelines—feel free to tweak it for local development. -
Build & run the application
./gradlew clean build java -jar build/libs/<PROJECT_NAME-VERSION>.jar
The built JAR file name can be found under
build/libs.
Once the application is running:
| Resource | URL |
|---|---|
| Swagger UI | http://localhost:8080/swagger-ui.html |
| OpenAPI JSON | http://localhost:8080/v3/api-docs |
API docs are auto-generated via SpringDoc annotations (@Operation, @Tag, …).
The back-end service is deployed on Google Cloud Platform (GCP) using Docker containers managed via Cloud Run.
| Status | Item |
|---|---|
| ✅ | Social login / signup |
| ✅ | Map-based collection search API |
| ✅ | Café management & collection request APIs |
| ✅ | User MyPage APIs |
| ✅ | Environmental report APIs |
| ✅ | Get coffee-ground list by café |
| ✅ | AI solution integration |
| 🔄 | Upcycling market / community APIs (later) |
🙌 Contributions, feature requests, and bug reports are welcome!
Feel free to open issues or submit pull requests.
A daily cup of coffee can help protect our planet 🌍
