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 β local development values and placeholders)
# 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 4.0, Spring Security, Spring Data JPA, Spring Retry, Spring Actuator |
| ποΈ Database | PostgreSQL, Liquibase |
| β‘ Cache | Redis, Caffeine |
| π Security | JWT (JJWT 0.13), Google OAuth2, Argon2 |
| βοΈ Cloud | AWS S3 SDK 2.x, CloudFront |
| π³ Payment | Stripe |
| π€ AI | LangChain4j, OpenAI |
| π Observability | Micrometer, Prometheus, OpenTelemetry, Sentry, Loki |
| π§ͺ Testing | JUnit 5, Testcontainers, REST Assured, Instancio, Jacoco |
| π API | OpenAPI 3, SpringDoc 3.0, OpenAPI Generator 7 |
| π Mapping | MapStruct 1.6, Lombok |
| π’ Deployment | Docker, Taskfile-based deployment, VPS hosting |
| π 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
βββ π³ payment/ # Stripe payment, webhooks
βββ β review/ # Product reviews, ratings, AI moderation
βββ β€οΈ favorite/ # Favorites list
βββ π§ email/ # Email verification & notifications
βββ π filestorage/ # AWS S3 file upload/download
βββ π observability/ # Telemetry, Sentry integration
βββ π§ common/ # Shared utilities, validation, monitoring
βββ π astartup/ # Startup data migration
π« No Kubernetes, no cloud-managed services β the app ships as a Docker image to a VPS.
Deployment is managed via Taskfile. The typical flow:
task buildβ build Docker image for ARM64 (server architecture)task pushβ push to Docker Hubtask sync-composeβ copy compose file to remote servertask deployβ pull and recreate container on the servertask smokeβ run smoke test against production endpointtask full-deployβ complete flow (build β push β sync-compose β deploy β smoke)
See Taskfile.yml for all available tasks.
π 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
β€οΈ
