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 -dAdd --no-cache flag if you need to rebuild from scratch:
docker compose down && docker compose build --no-cache && docker compose up -dThe system comes with pre-seeded student accounts. You can log in using any of these email addresses:
- john.smith23@my.johndoe.edu
- jane.doe23@my.johndoe.edu
- bob.johnson23@my.johndoe.edu (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.shNote: 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