A production-grade Java coffee marketplace β built in the open, for engineers who want real experience.
π Live Demo Β· π API Specs Β· π’ Good First Issues Β· π¬ Community
π Key stats across all three repositories:
β 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 --env-file .env.example up -d postgres redis minio minio-init
# 3. βΆοΈ Run
# Linux / macOS / Git Bash on Windows:
set -a && source .env.example && set +a && mvn spring-boot:runπͺ Windows (PowerShell / CMD): the shell command above won't work as written. Use IntelliJ with
.env.exampleloaded in the run configuration, or use the full Docker path instead β see Getting Started.
β οΈ Important:.env.exampleis intentionally tuned for contributors:SPRING_PROFILES_ACTIVE=dev, optional integrations such as Stripe stay disabled, and local HTTP access logs run atDEBUG.
π App runs at http://localhost:8083 Β· π Swagger UI at http://localhost:8083/api/docs/swagger-ui/index.html
π‘ Using IntelliJ? See Getting Started for all four local run modes, IDE run configuration, Docker-only setup, and troubleshooting.
ποΈ Want to run the frontend too? Clone the frontend repo as a sibling and use Options 1-4 in Getting Started:
git clone https://github.com/Sunagatov/Iced-Latte-Frontend.git # sibling of Iced-Latte/Frontend can run either locally or in Docker, depending on the mode you pick.
β οΈ Docker commands should also use.env.example, so the backend container starts in the same localdevprofile unless you explicitly override it.
π§ͺ 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. It was later 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 the wider developer 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 developer festival launched by Huawei, which positions itself as an incubator of collaborative technologies and rewards 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. JetBrains granted Iced Latte 8 free All Products Pack licenses (February 2024, License Reference No. D379769990).
π¨π» Recommended by a GitHub Star π¨
- Iced Latte was recommended in this LinkedIn post by a well-known creator and GitHub Star, who called it a great example of a Java project. Many Iced Latte contributors shared their positive experience in the comments.
- π» Language: Java 25
- ποΈ Framework: Spring Boot 4.0.5, 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, MinIO
- π³ Payment: Stripe
- π€ AI: LangChain4j, OpenAI-compatible APIs
- π Observability: Micrometer, Prometheus, OpenTelemetry, Sentry, Loki, Datadog
- π§ͺ Testing: JUnit 5, Testcontainers, REST Assured, Instancio, Jacoco
- π API: OpenAPI 3, SpringDoc 3.0, OpenAPI Generator 7
- π Mapping: MapStruct 1.6, Lombok
- π Getting Started β all four local run modes, IDE setup, Docker-only mode, troubleshooting
- π Infrastructure β how the database, object storage, and Redis cache are wired together, with free-tier provider options and env vars explained
- π Architecture: Feature Packaging β modular-monolith rule: keep business code inside its owning feature package
- π Contributing β how to contribute, PR guidelines, branching
- π Security Policy β security policy and vulnerability reporting
- π Code of Conduct β community standards and expected behavior
- π LICENSE β personal local evaluation only; public/educational/commercial use requires permission
src/main/java/com/zufar/icedlatte/
βββ π security/ # JWT auth, Google OAuth2, registration, login, sessions, rate limiting
βββ π auth/ # Google OAuth2 callback, auth redirects
βββ π€ user/ # User profile, addresses, avatars
βββ π¦ product/ # Product catalog, filters, images
βββ π cart/ # Shopping cart
βββ π order/ # Orders, order lifecycle, order history
βββ π³ payment/ # Stripe payment, checkout, webhooks
βββ β review/ # Product reviews, ratings, AI moderation
βββ β€οΈ favorite/ # Favorites list
βββ π§ email/ # Email verification & notifications
βββ π filestorage/ # AWS S3 / MinIO file upload/download
βββ π§ common/ # Shared utilities, validation, monitoring, HTTP helpers
βββ π astartup/ # Startup data migration and bootstrap tasks
π Contributions are welcome. Here's how to get involved:
- π Found a bug: Open an issue with the
buglabel - π‘ Want a feature: start a Discussion first
- π¨π» Ready to code: pick a
good first issue, then comment "I'm on it" - π§ Big change: comment on the issue before writing code β many tickets have hidden constraints
- π’
good first issueβ simple, well-scoped, and 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 behavior
- π 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.
π Iced Latte Personal Evaluation License 2026 β personal local evaluation only. Public, educational, remote-hosted, and commercial use require explicit written permission from the author (zufar.sunagatov@gmail.com).
- π¬ Telegram community: Project community
- π€ Personal Telegram: @lucky_1uck
- π± WhatsApp: Message me
- π§ Email: zufar.sunagatov@gmail.com
- π Issues: GitHub Issues
β€οΈ
