A Modern Full-Stack E-Commerce Mobile Application
Capstone Project for SE114.Q22 - UIT-VNUHCM
Shoe Store App is a comprehensive mobile e-commerce solution designed to deliver a seamless and highly responsive shoe-shopping experience.
Built with scalability and performance in mind, the project leverages a reactive and modern Android UI using Kotlin Jetpack Compose, backed by a robust, high-performance ASP.NET Core Web API. The architecture is heavily optimized and fortified with enterprise-level features, ensuring that whether you are an administrator managing the product catalog or a customer browsing the latest sneakers, the journey is fast, secure, and intuitive.
- 🛡️ Advanced Security: Implemented JWT Authentication and sophisticated Rate Limiting algorithms. We utilize Token Bucket for authenticated users and Fixed Window (partitioned by IP) for anonymous traffic to prevent DDoS and Brute-force attacks.
- ☁️ Cloud Media Storage: Integrated with Cloudinary for scalable, auto-optimized image hosting, avoiding heavy local server loads.
- 📱 Modern UI & MVVM: Frontend Android application strictly follows the MVVM (Model-View-ViewModel) architecture pattern combined with Jetpack Compose, ensuring a highly reactive, testable, and robust state-driven user interface.
- 🏗️ Clean Architecture: Backend structured with maintainability in mind, utilizing Result Pattern, FluentValidation, and robust Dependency Injection.
- 🔄 Agile Workflow: Project managed entirely via ClickUp using 2-week Sprints, Time Tracking, and strictly adhering to Conventional Commits.
| Name | GitHub Profile |
|---|---|
| Trần Quang Hạ | @tqha1011 |
| Phan Cao Minh Hiếu | @hieupcm03 |
| Lê Hữu Việt Hoàng | @Hoang44444 |
| Nguyễn Lê Hoàng Hảo | @hoanghaoz |
Frontend Mobile (Android)
- Language: Kotlin
- UI Framework: Jetpack Compose
- Network: Retrofit
- Image Loading: Coil / Glide
Backend API
- Framework: ASP.NET Core Web API (.NET)
- ORM: Entity Framework Core
- Database: PostgreSQL
- API Documentation: Scalar / OpenAPI
Infrastructure & Management
- Containerization: Docker & Docker Compose
- Task Management: ClickUp
- Version Control: GitHub
If you don't have Docker, get it from official website to install Docker
Open your terminal and navigate to Backend folder
Run the below command:
docker compose up -d --buildNavigate to http://localhost:<port>/scalar/v1 to see the API Docs
Requirement: Install Android Studio && JDK 17
- Open Android Studio and open folder Frontend
- Wait for
gradle sync
- Open
app/src/main/res/values/strings.xmlto change the backend's IP Address - If you run emulator, simply change the
localhosttohttp://10.0.2.2:<port>