A full-stack web application demonstrating a university student information system with course registration, prerequisite checking, and waitlist management.
- Docker and Docker Compose
- For AWS deployment: AWS CLI v2 with SSO configured
- Clone the repository:
git clone https://github.com/yourusername/mock-student-information-system.git
cd mock-student-information-system
- Build and start the containers:
docker compose build && docker compose up -d
- Access the application:
- Frontend: http://localhost:3000
- Backend API: http://localhost:3001/api
If you need to rebuild the project:
docker compose down && docker compose build && docker compose up -d
Add --no-cache
flag if you need to rebuild from scratch:
docker compose down && docker compose build --no-cache && docker compose up -d
The system comes with pre-seeded student accounts. You can log in using any of these email addresses:
- [email protected]
- [email protected]
- [email protected] (See database/seed/08-sample-data.sql for all available accounts)
Password authentication is disabled for demo purposes. You can just type in any password.
.
├── backend/ # Node.js + TypeScript backend
│ ├── database/ # MySQL schema and seed data
│ └── src/
├── frontend/ # Next.js frontend
│ └── src/
├── infrastructure/ # AWS Infrastructure as Code
└── docker-compose.yml # Local development configuration
The infrastructure/
directory contains an incomplete AWS deployment setup using CloudFormation. While not fully functional, it demonstrates the intended architecture:
- Configure AWS SSO (recommended):
aws configure sso
- Deploy infrastructure (when complete):
cd infrastructure/v1
./deploy.sh
- Clean up resources:
./cleanup.sh
Note: The AWS deployment is currently incomplete and would require:
- Proper VPC and networking setup
- ECS cluster configuration
- ECR repositories for container images
- RDS for MySQL database
- Load balancer and target groups
- IAM roles and policies
- The frontend uses Next.js 14 with TypeScript and Tailwind CSS
- The backend uses Node.js with TypeScript and Express
- Database is MySQL 8 with a focus on academic data modeling
- All components are containerized for consistent development environments