Skip to content

Sunagatov/Iced-Latte

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1,849 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Iced Latte

Iced Latte

A production-grade Java coffee marketplace β€” built in the open, for engineers who want real experience.

🌐 Live Demo Β· πŸ“– API Docs Β· 🟒 Good First Issues Β· πŸ’¬ Community

CI Status Quality Gate codecov License: CC BY-NC 4.0

GitHub Stars GitHub Forks Contributors Docker Pulls


πŸ“Š Key stats across all three repositories:

Repository ⭐ Stars 🍴 Forks
πŸ”§ Backend Stars Forks
🎨 Frontend Stars Forks
πŸ§ͺ QA Stars Forks

⭐ If this project helps you learn or inspires you, please give it a star β€” it means a lot to the community!


πŸš€ Quick Start

πŸ“‹ 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 export command 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 --build

Frontend at http://localhost:3000 β€” built from source every time.

πŸ§ͺ Run the tests:

mvn test

βœ… Tests use Testcontainers β€” Docker must be running.


πŸ“Έ Preview

Iced Latte Main Page

Live application interface


πŸ€” What is this?

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!


πŸ† Recognition

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.

πŸ› οΈ Tech Stack

πŸ“‚ 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

πŸ“š Guides & Features

πŸ“„ 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

πŸ“ Project Structure

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

🚒 Deployment

🚫 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

🀝 Contributing

πŸŽ‰ 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

🏷️ Issue labels

🏷️ 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

πŸ› Bug reports

  • πŸ” Search existing issues before opening a new one
  • πŸ“ Clearly describe observed vs expected behaviour
  • πŸš€ For minor fixes, just open a PR directly

πŸ”„ Pull requests

  • 🎯 Keep PRs focused β€” one concern per PR
  • βœ… Make sure mvn test passes locally before pushing
  • πŸ”— Reference the issue number in your PR description

🍴 Forking

🀝 Forks are welcome. Please share useful features back via PR so the community benefits and your fork stays easy to sync.


πŸ“„ License

πŸ“œ 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).


πŸ“ž Contact

❀️

Packages

 
 
 

Contributors