A production-grade Java coffee marketplace β built in the open, for engineers who want real experience.
π Live Demo Β· π API Docs Β· π’ Good First Issues Β· π¬ Community
π Key stats across all three repositories:
| Repository | β Stars | π΄ Forks |
|---|---|---|
| π§ Backend | ||
| π¨ Frontend | ||
| π§ͺ QA |
β If this project helps you learn or inspires you, please give it a star β it means a lot to the community!
π Prerequisites: Java 25, Maven 3.9+, Docker Desktop
# 1. π₯ Clone
git clone https://github.com/Sunagatov/Iced-Latte.git && cd Iced-Latte
# 2. π³ Start infrastructure (PostgreSQL, Redis, MinIO)
docker compose up -d postgres redis minio minio-init
# 3. βΆοΈ Run (uses committed .env with safe local defaults)
# Linux / macOS / Git Bash on Windows:
export $(cat .env | xargs) && mvn spring-boot:runπͺ Windows (PowerShell / CMD): the
exportcommand above won't work. Use the IntelliJ EnvFile plugin or the full Docker path instead β see START.md.
π App runs at http://localhost:8083 Β· π Swagger UI at http://localhost:8083/api/docs/swagger-ui/index.html
π Test login: olivia@example.com / p@ss1logic11 (15 seed users, all share this password)
π‘ Using IntelliJ? See START.md for IDE run configuration, Docker-only setup, and troubleshooting.
ποΈ Want to run the frontend too? Clone the frontend repo as a sibling and use Option C in START.md:
git clone https://github.com/Sunagatov/Iced-Latte-Frontend.git # sibling of Iced-Latte/ docker compose --profile backend --profile frontend up -d --buildFrontend at http://localhost:3000 β built from source every time.
π§ͺ Run the tests:
mvn testβ Tests use Testcontainers β Docker must be running.
Iced Latte is a non-profit sandbox project started in 2022 as a private pet project, then opened to the community to give junior engineers, students, and mentees practical experience in a real tech project with processes similar to those in actual tech teams. The first participants were students, Telegram channel subscribers, and mentees from ADPList and Women In Tech. The project has since grown and earned recognition from both the open-source community and the wider tech community.
β If this project helps you learn or inspires you, please give it a star β it means a lot to the community!
Iced Latte has earned recognition from the broader tech community.
π₯ GitHub Trending π₯ β May 22, 2024
- The backend repository reached GitHub's Trending page β listed among resources "the GitHub community is most excited about today" β gaining 85 stars in a single day with 27 active contributors. (link to the archive)
π₯ KaiCode 2024 Finalist π₯
- Iced Latte made it to the finals of KaiCode β an annual open-source festival launched by Huawei, which positions itself as an incubator of open-source technologies and rewards the most promising projects. Iced Latte was selected among 412 applications and placed in the third group of 26 finalist repositories considered for the prize. Jury members are not allowed to assess their own projects, so the selection was fully independent.
π οΈJetBrains Open Source License π
- Iced Latte was recognized by JetBrains β a leading software company specializing in intelligent development tools. As an active participant in the open-source community, JetBrains supports recognized global open-source projects by providing complimentary licenses for non-commercial development. JetBrains granted Iced Latte 8 free All Products Pack licenses (February 2024, License Reference No. D379769990).
π¨π» Recommended by Eddie Jaoude π¨
- Iced Latte was recommended by Eddie Jaoude β one of the most influential open-source experts, a GitHub Star with 174K followers on X and 17.6K on LinkedIn β who called it a great example of a Java open-source project. Many Iced Latte contributors shared their positive experience in the comments.
| π Category | π§ Technology |
|---|---|
| π» Language | Java 25 |
| ποΈ Framework | Spring Boot 3.5, Spring Security, Spring Data JPA, Spring Retry, Spring Actuator |
| ποΈ Database | PostgreSQL, Liquibase 4.32 |
| β‘ Cache | Redis, Caffeine |
| π Security | JWT (JJWT 0.12), Google OAuth2, TLS |
| βοΈ Cloud | AWS S3 SDK 2.x |
| π Monitoring | Micrometer, Prometheus, OpenTelemetry |
| π§ͺ Testing | JUnit 5, Testcontainers, REST Assured, Instancio, Jacoco |
| π Logging | Logback, Logstash encoder, SLF4J |
| π API | OpenAPI 3, SpringDoc 2.8, OpenAPI Generator 7 |
| π Mapping | MapStruct 1.6, Lombok |
| π’ Deployment | Docker, GitHub Actions |
| π Document | π Description |
|---|---|
| START.md | IDE setup, Docker-only mode, troubleshooting |
| FEATURES.md | How the database, object storage, and Redis cache are wired together β with free-tier provider options (Supabase, Upstash) and all env vars explained |
| CONTRIBUTING.md | How to contribute, PR guidelines, branching |
| SECURITY.md | Security policy and vulnerability reporting |
| CODE_OF_CONDUCT.md | Community standards and expected behaviour |
| LICENSE | CC BY-NC 4.0 β free for educational use, commercial use requires permission |
src/main/java/com/zufar/icedlatte/
βββ π security/ # JWT auth, Google OAuth2, registration, login
βββ π auth/ # Google OAuth2 callback, auth redirects
βββ π€ user/ # User profile management
βββ π¦ product/ # Product catalog
βββ π cart/ # Shopping cart
βββ π order/ # Orders
βββ β review/ # Product reviews & ratings
βββ β€οΈ favorite/ # Favorites list
βββ π§ email/ # Email verification & notifications
βββ π filestorage/ # AWS S3 file upload/download
βββ π§ common/ # Shared utilities, validation, monitoring
βββ π astartup/ # Startup data migration
π« No Kubernetes, no cloud-managed services β the app ships as a Docker image to Render.
On every merge to master, the CD pipeline builds, pushes to Docker Hub, and deploys to Render automatically. Only maintainers can merge to master.
| Pipeline | Trigger | What it does |
|---|---|---|
| CI | Push + PR β development |
Build, test, Codecov, SonarCloud, OWASP, OpenAPI breaking-change check (PR only), Telegram on failure |
| CD | Push to master |
Build Docker image, push to Docker Hub, deploy to Render, smoke test, Telegram notify |
| Build deps image | pom.xml changed on master or development |
Rebuilds the Maven deps base image to keep builds fast, Telegram on failure |
| Stale | Every Monday | Marks issues/PRs stale after 60 days, closes after 30 |
π Contributions are welcome. Here's how to get involved:
| π― Situation | π Action |
|---|---|
| π Found a bug | Open an issue with the bug label |
| π‘ Want a feature | Start a Discussion first |
| π¨π» Ready to code | Pick a good first issue, comment "I'm on it" |
| π§ Big change | Comment on the issue before writing code β many tickets have hidden constraints |
| π·οΈ Label | π Meaning |
|---|---|
π’ good first issue |
Simple, well-scoped β great for first-timers |
π΄ bug |
Something is broken |
π΅ high priority |
Do this first |
π‘ enhancement |
Accepted improvement to an existing module |
π new feature |
New functionality β discuss before starting |
βͺ idea |
Needs design discussion β don't implement yet |
- π Search existing issues before opening a new one
- π Clearly describe observed vs expected behaviour
- π For minor fixes, just open a PR directly
- π― Keep PRs focused β one concern per PR
- β
Make sure
mvn testpasses locally before pushing - π Reference the issue number in your PR description
π€ Forks are welcome. Please share useful features back via PR so the community benefits and your fork stays easy to sync.
π CC BY-NC 4.0 β free for educational and personal use with author attribution. Commercial use requires explicit written permission from the author (zufar.sunagatov@gmail.com).
- π¬ Telegram community: Zufar Explained IT
- π€ Personal Telegram: @lucky_1uck
- π± WhatsApp: Message me
- π§ Email: zufar.sunagatov@gmail.com
- π Issues: GitHub Issues
β€οΈ
