UMT Campus Marketplace Platform
Student-to-student marketplace system with seller verification and secure transaction flow. A web-based marketplace built for Universiti Malaysia Terengganu (UMT) students to buy and sell items within campus, replacing informal WhatsApp and Telegram trading with a structured, verified, and traceable platform. The project is now publicly accessible at umtmarket.ahsmart.dev, with both the application and database hosted on a DigitalOcean VPS.
Live demo & credentials
Use the live link and these accounts to test user, seller, and admin workflows quickly.
Production deployment
The platform is deployed as a live production demo for portfolio review and real user-flow testing. Hosting both the Spring Boot application and the MySQL database on a DigitalOcean VPS helped validate the project beyond local development and demonstrate hands-on deployment experience.
- Live demo available at umtmarket.ahsmart.dev.
- Application and database hosted on DigitalOcean VPS infrastructure.
- Public domain setup makes the project directly accessible for recruiters, testers, and reviewers.
- Deployment reflects practical experience with moving a full web application into a hosted environment.
Problem statement
UMT students currently trade through WhatsApp and Telegram groups. There is no structured system for tracking orders, verifying sellers, or preventing fraud. Transactions lack transparency and accountability. A campus-focused marketplace was needed to centralize and formalize student trading.
Key features
- Role-based access control (Buyer, Seller, Admin).
- Admin-controlled seller verification workflow.
- Product listing with image upload and status flagging.
- Cart and order management system.
- Payment tracking per order.
- Order-based chat system between buyer and seller.
- Live production deployment on DigitalOcean VPS with public domain access.
- Fully normalized relational database (up to 3NF).
System architecture
Architecture pattern
Layered (Logical 3-Layer Architecture)
Layers
- Presentation Layer (Thymeleaf views + controllers).
- Business Logic Layer (service classes).
- Data Access Layer (repositories using JPA).
Flow
Client Request → Controller → Service → Repository → Database, then Database Response → Repository → Service → Controller → View.
Design decisions
- Clear separation of concerns for maintainability.
- Role-based logic handled at service layer.
- Entity relationships mapped using JPA annotations.
- Validation handled at controller and database levels.
Database constraints & validation
The schema is fully normalized to Third Normal Form (3NF) to eliminate redundancy and enforce data integrity across users, products, carts, orders, payments, and chats.
- Unique email and academic ID.
- Foreign key constraints across all transactional tables.
- ENUM fields for role, order status, and payment status.
- CHECK constraint for review rating (1–5).
- Database fully normalized to Third Normal Form (3NF).
Engineering decisions & lessons learned
- Selected layered architecture to maintain clean separation of concerns.
- Used Spring Boot for rapid development and structured backend design.
- Normalized database to 3NF to eliminate redundancy and enforce data integrity.
- Implemented seller verification to strengthen trust and control marketplace access.
- Deployed both the application and database to a DigitalOcean VPS to prove the system in a real hosted environment.
- Refactored early database design after identifying incorrect dependency classification during normalization review.