Advanced Information Systems Development
SEHS4701
Design comprehensive web-based EV seminar registration platform
User registration, vehicle browsing, seminar discovery, admin dashboard
Streamline event management and improve user engagement
Better Analytics: Data-driven insights
Efficiency: Reduced manual workload
Experience: Seamless user journey
Next.js 16 • React 19 • TypeScript
Tailwind CSS • Responsive Design
RESTful API / JSON
Spring Boot 3.4 • Java 21 • MySQL
RESTful API • Security • Async Tasks
Database: MySQL 8.0+ with 5 core entities
Customer • Vehicle • Seminar • Registration • Verification Code
Next.js 16
React-based with SSR & SSG capabilities
React 19
Modern hooks & functional components
Tailwind CSS v4
Utility-first responsive design
TypeScript 5
Type safety & better developer experience
Axios 1.15
API communication & data fetching
Auth, Language, Theme
Client-side state management
Spring Boot 3.4
Enterprise Java framework
Java 21
Latest LTS version
MySQL 8.0+
Relational database
Spring Security
Authentication & authorization
Spring Data JPA
Database abstraction layer
Spring Mail + Gmail SMTP
Transactional emails
Complete database schema showing all entities and relationships
Home Page
Login Page
Registration
EV Models List
Seminars
User Profile
Seminar List
Add Seminar
Vehicles List
Add Vehicle
Registrations
Confirmation
Secure login & role-based access
Create/Edit/Update vehicle listings
Create events, set capacity, archive
View all registrations & statistics
Handle capacity overflow & promotion
Send confirmations & reminders
Email, password, phone
Name, customer type
Vehicle interests
Communication prefs
Verify email address
Enter 6-digit code
Dashboard accessible
View available seminars
Click Register button
Review registration
Confirmation email
View in dashboard
Option to unregister
Immediate registration confirmation
Day before seminar
When unregistering
Waitlist to confirmed
JWT tokens & Spring Security
Bcrypt hashing algorithm
6-digit codes with expiry
Frontend-backend origin control
USER and ADMIN roles
Backend validation for all inputs
Meaningful error messages
Gmail app-specific passwords
Requirements:
Installation:
npm install
Run:
npm run dev
Access:
http://localhost:3000
Requirements:
Database Port:
localhost:3306
Run:
mvn spring-boot:run
Access:
http://localhost:8080
Frontend .env.local:
NEXT_PUBLIC_API_URL=http://localhost:8080/api
Backend application.properties:
Gmail SMTP configuration, Database credentials
Pre-seeded with:
Challenge: Ensuring reliable email delivery
Solution: Gmail SMTP with app-specific passwords & async processing
Challenge: Handling seminar capacity limits
Solution: Real-time availability tracking & waitlist support
Challenge: Intuitive interface design
Solution: Responsive design with Tailwind CSS & multi-language support
Challenge: Protecting user data
Solution: Multi-layer authentication, encryption, input validation
Challenge: Handling growth
Solution: Async email processing, database indexing, stateless API
Challenge: Frontend-Backend communication
Solution: CORS configuration in Spring Security
Complete application built from scratch
Fully functional user interface
Comprehensive RESTful backend
Relational schema design
Customer & Admin functionality
Automated transactional emails
TypeScript & Java with type safety
Setup guides & API docs
Stripe or PayPal for paid seminars
Ratings for completed seminars
React Native for iOS/Android
Comprehensive dashboards & reports
Twilio integration for notifications
Expand i18n support
Share seminars on social media
Sync with Google/Outlook calendars
Lee Cheuk Him
24076812S
Chan Suet Ying
24064653S
Sin Cheuk Wai
24063411S
Lee Men Ngai
24064468S
Ng Ho Yin
24042206S
HO Hoi Kit
24060170S
Questions?
Thank you for your attention!