ICE Jersey Order System

Department of Information & Communication Engineering

A comprehensive full-stack web application for managing departmental jersey orders. Features real-time order tracking, secure admin dashboard, automated email notifications, and seamless payment integration with bKash/Nagad.

Order Form
Admin Dashboard
Payment
Email

📘 Project Description

The ICE Jersey Order System is a production-ready web application designed to streamline the jersey ordering process for the Department of ICE at BAUET. The system handles everything from initial order placement to payment processing and admin management. Built with modern technologies and best practices, it features secure authentication, real-time order tracking, automated email confirmations via Brevo, and integrated mobile payment options for Bangladesh (bKash/Nagad).

🚀 Key Features

Smart Order Form

User-friendly interface with real-time jersey number availability checking and dynamic pricing based on customization options.

Secure Admin Panel

JWT-based authentication, role management, and comprehensive order management dashboard with search and filter capabilities.

Email Automation

Automated order confirmations and status updates sent to customers via Brevo email service with professional templates.

Mobile Payments

Integrated bKash and Nagad payment options with transaction tracking and COD support for Bangladesh users.

PostgreSQL Database

Robust data storage with proper indexing, relationships, and transaction management for data integrity.

Analytics Dashboard

Real-time statistics showing total orders, pending/completed status, and revenue tracking for admins.

Security Features

Rate limiting, Helmet.js security headers, bcrypt password hashing, and SQL injection prevention.

Responsive Design

Fully responsive UI built with Bootstrap and custom CSS, optimized for desktop, tablet, and mobile devices.

🧠 Tech Stack

Frontend Technologies
HTML5 CSS3 JavaScript (ES6+) Bootstrap 5 Tailwind CSS AOS Animations Axios
Backend Technologies
Node.js Express.js PostgreSQL JWT Authentication bcrypt.js Helmet.js Express Rate Limit
Third-Party Services
Brevo Email API bKash Integration Nagad Integration Render Hosting

🏗️ System Architecture

Client (Browser)
Frontend Layer
(HTML/CSS/JS)
API Layer
(Express.js)
Auth Middleware
(JWT)
Security Layer
(Helmet/Rate Limit)
Database
(PostgreSQL)
Email Service
(Brevo API)
Payment Gateway
(bKash/Nagad)
Data Flow
  1. User submits order through the frontend form with jersey customization options
  2. Frontend validates input and checks jersey number availability via API
  3. API receives request and applies rate limiting and security checks
  4. Order stored in PostgreSQL database with pending status
  5. Email confirmation sent automatically via Brevo API to customer
  6. Admin notification email sent with order details
  7. Admin reviews order in dashboard and updates status
  8. Status update triggers confirmation email to customer

🔌 API Endpoints

Method Endpoint Description Auth
GET /api/health Health check endpoint
POST /api/admin/login Admin authentication
GET /api/admin/verify Verify JWT token
GET /api/orders/check-jersey Check jersey number availability
POST /api/orders Submit new order
GET /api/admin/orders Get all orders (with pagination)
GET /api/admin/stats Get order statistics
PATCH /api/admin/orders/:id/status Update order status
DELETE /api/admin/orders/:id Delete order

🎯 Live Demo & Code

Experience the full-featured jersey ordering system with real-time order management.

Visit Live Site Frontend Code Backend Code

📬 Get In Touch

Have questions about this project? Feel free to reach out!

Your information is secure and will not be shared.

🎥 Project Demo Video