https://github.com/STIWK2124-A242/class-activity-stiwk2124/blob/main/NewGroupMembers.md
- Matric Number & Name & Photo & Phone Number
- Mention who the leader is.
- Mention your group name for Assignment-1 and Assignment-2
- Other related info (if any)
Qurba E-commerce
Background
Produk AMEEN is a product line under Qurba Food Industries, specializing in Malaysian-made food items such as sauces, spice blends, and herbal honey. Initially, the business relied on a static WordPress website for product cataloging, which lacked transactional capabilities, backend control, and customer interaction. This limited the business's potential in the growing digital commerce sector.
Problem Statement
The absence of online purchasing, order management, and customer interaction features in the current platform hinders scalability. Small businesses like Produk AMEEN often struggle to access full-stack, scalable e-commerce solutions tailored to their needs, leading to missed sales opportunities, inefficient inventory handling, and unsatisfactory customer experiences.
Main objective
This group project builds upon our prior development efforts: the backend system completed in Assignment 1 and the frontend interface developed in Assignment 2. The main objective is to integrate both components into a fully functional e-commerce web application for Produk AMEEN using Angular for the frontend and Spring Boot for the backend. In addition, three new key features wishlist, user profile, and review and rating system are introduced to enhance user engagement and platform usability.
Methodology
The system follows a Single Page Application (SPA) architecture [1][7], with Angular Material applied for responsive and modern UI styling. The backend uses Spring Boot to expose RESTful APIs, connected to a MySQL database. Authentication and role-based access control are implemented using JWT (JSON Web Token) [3][4][5][6], providing secure login and user differentiation (admin vs. customer). Version control is managed using GitHub, and the deployment environment is containerized using Docker, coordinated via a Docker-compose.yml file. The project was developed using Agile methodology, with iterative sprints, regular sprint reviews, and backlog refinement to ensure continuous improvement and progress tracking.
Result
The completed application supports comprehensive e-commerce functionalities, including product browsing, shopping cart, secure checkout, order history viewing, and administrative panels for managing products and orders. The three additional features wishlist, user profile, and product review & rating—further enrich the user experience and increase customer interaction. Docker images were successfully published to Docker Hub, ensuring readiness for cloud deployment or server hosting.
Conclusion
This project demonstrates that combining Angular, Spring Boot, and Docker under Agile practices can result in a scalable, secure, and user-friendly e-commerce solution. By adopting modern web development standards [4][6][7] and Single-Page Application (SPA) principles [1], Produk AMEEN now has a robust digital platform capable of supporting growth, enhancing customer engagement, and operating efficiently in Malaysia’s competitive online marketplace.
Dockerhub link
https://hub.docker.com/r/chongyongxuan/ameen-market-backend/tagshttps://hub.docker.com/r/chongyongxuan/ameen-market-frontend/tags- Docker Desktop must be installed and running on your machine
- Ensure you have cloned the whole repository to your local machine
- Have installed any IDE such as IntelliJ or Visual Studio Code
How to Run This Application Using Docker
Step 1: Clone the Repository
First, clone this repository from GitHub:
Press Win + R, type cmd, and press Enter
Choose the folder where you want to store the project, and type:
cd "the name of the folder"
And run:
git clone https://github.com/STIWK2124-A242/groupproject-codex.gitThen navigate into the project folder:
cd groupproject-codex
Step 2: Start the Containers
In the Command Prompt, run:
docker-compose upThis will automatically start the frontend and backend containers using the docker-compose.yml file.
Step 3: Stop the Containers
To stop the containers, press:
Ctrl + C
Then, to properly shut everything down, run:
docker-compose down| Endpoint | Description |
|---|---|
| POST http://localhost:8080/qurba/api/auth/register | Registration Process for Customer & admin |
| POST http://localhost:8080/qurba/api/auth/login | Login Process for Customer & Admin |
| Endpoint | Description |
|---|---|
| GET http://localhost:8080/qurba/api/admin/products | Get All Products |
| POST http://localhost:8080/qurba/api/admin/products | Add Product |
| PUT http://localhost:8080/qurba/api/admin/products/{productid} | Update Product |
| DELETE http://localhost:8080/qurba/api/admin/products/{productid} | Delete Product |
| GET http://localhost:8080/qurba/api/admin/orders | Get All Orders |
| 1. Home Page | 2. Contact Info |
|---|---|
| 3. About Company | 4. Blog Page |
|---|---|
| 5. Register Admin | 6. Home Page Admin |
|---|---|
| 7. Admin's Product Management | 8. Edit Product |
|---|---|
| 9. Add Product | 10. Category Management |
|---|---|
| 11. Customer's Order Status | 12. Update Order Status |
|---|---|
| 13. Login Pages Customer | 14. Register Pages Customer |
|---|---|
| 15. Your Cart | 16. Your Order |
|---|---|
| 17. Product Category | 18. Customer Order |
|---|---|
| 19. Review Product Customer | 20. Add Review Product |
|---|---|
| 21. Add To Cart | 22. Wishlist |
|---|---|
| 23. Wishlist Page |
|---|
| 24. Profile 1 | 25. Profile 2 |
|---|---|
-
[1] MDN Web Docs. (2024, December 19). SPA (Single-page application). https://developer.mozilla.org/en-US/docs/Glossary/SPA
-
[2] Gordadze, I. (2020, October 15). Spring Security with JWT for REST API. Toptal Engineering Blog. https://www.toptal.com/spring/spring-security-tutorial
-
[3] Angular University. (2025, March 8). Angular Authentication with JWT: The complete guide. https://blog.angular-university.io/angular-jwt-authentication/
-
[4] Karanam, R. (2023, August 15). Implementing JWT Authentication using Angular. Medium. https://raghuvardhankaranam.medium.com/implementing-jwt-authentication-using-angular-52bc82096b56
-
[5] Kumar, P. (2024, November 20). Best practices for JWT authentication in Angular Apps. Syncfusion Blogs. https://www.syncfusion.com/blogs/post/best-practices-for-jwt-authentication-in-angular-apps/amp
-
[6] GeeksforGeeks. (2025, April 14). JSON Web Token (JWT). https://www.geeksforgeeks.org/json-web-token-jwt/
-
[7] GeeksforGeeks. (2024, August 7). What is SPA (Single page application) in AngularJS ? https://www.geeksforgeeks.org/what-is-spa-single-page-application-in-angularjs/
-
[8] MDN Web Docs. (2024, December 19). SPA (Single-page application) - MDN Web Docs Glossary: Definitions of Web-related terms. https://developer.mozilla.org/en-US/docs/Glossary/SPA
-
[9] IBM. (2025, April 23). CICS Transaction Server for z/OS: JSON Web Token (JWT). https://www.ibm.com/docs/en/cics-ts/6.x?topic=cics-json-web-token-jwt
-
[10] Shopify. (2025, March 28). Ecommerce website design: Examples and tips. https://www.shopify.com/my/blog/best-ecommerce-sites
-
[11] Hui, X. (2024, January 22). 10+ inspirational ecommerce website examples (Updated 2024). Exabytes Blog. https://www.exabytes.my/blog/inspirational-ecommerce-website-examples/
-
[12] Angular. (n.d.). Angular CLI Overview and Command Reference. https://angular.dev/tools/cli
-
[13] Angular Material. (n.d.). Material Design Components for Angular. https://material.angular.dev/
-
[14] TypeScript. (n.d.). TypeScript: JavaScript with syntax for types. https://www.typescriptlang.org/
-
[15] Spring Boot. (n.d.). Spring Boot Project Overview. https://spring.io/projects/spring-boot
-
[16] Spring Web Services. (n.d.). Spring Web Services Project Overview. https://spring.io/projects/spring-ws
-
[17] Spring Security. (n.d.). Spring Security Project Overview. https://spring.io/projects/spring-security
-
[18] phpMyAdmin. (n.d.). phpMyAdmin. https://www.phpmyadmin.net/
-
[19] Spring Initializr. (n.d.). Start a New Spring Boot Project. https://start.spring.io/
-
[20] freeCodeCamp.org. (2022, February 16). Angular Tutorial for Beginners: Learn Angular & TypeScript [Video]. YouTube. https://www.youtube.com/watch?v=pg19Z8LL06w&t=1267s
-
[21] Codevolution. (2021, August 4). Angular Authentication Tutorial - Using JWT [Video]. YouTube. https://www.youtube.com/watch?v=DQdB7wFEygo&t=62s
-
[22] Amigoscode. (2022, January 3). Spring Boot Security + JWT | Full Course [Video]. YouTube. https://www.youtube.com/watch?v=gJrjgg1KVL4
-
[23] Telusko. (2023, May 25). Spring Boot Crash Course | Spring Boot Tutorial [Video]. YouTube. https://www.youtube.com/watch?v=dFzvVoS-sRE&t=573s
-
[24] Bucko, A., Vishi, K., Krasniqi, B., & Rexha, B. (2023, April 13). Enhancing JWT Authentication and Authorization in Web Applications Based on User Behavior History. Computers, 12(4), 78. https://doi.org/10.3390/computers12040078