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.yaml
and.env
to match your local setup. -
Start required middleware The root-level
docker-compose.yaml
spins up all necessary containers (MySQL, Redis, …).docker-compose up -d
This
docker-compose.yaml
file 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 🌍