HUSTHub is a comprehensive school management system designed for Hanoi University of Science and Technology (HUST). It provides tailored interfaces and functionalities for students, teachers, and administrators to streamline academic processes.
HUSTHub centralizes essential academic operations including:
- Student information and enrollment management
- Course registration and class scheduling
- Teacher assignment and management
- Grade recording and academic tracking
- Tuition fee payment processing (with PayOS integration)
- Administrative functions and reporting
- View personal information and academic records
- Register for courses and manage class schedules
- Monitor grades and academic progress
- Process tuition fee payments securely
- View class timetables and course details
- Manage assigned classes and course materials
- Record and submit student grades
- View teaching schedules and workloads
- Access student enrollment information
- Manage class details and course content
- Comprehensive dashboard with system statistics
- Student account management
- Teacher account management
- Course and class creation and management
- Academic program configuration
- Generate reports and monitor system performance
- Backend: Node.js with Express.js
- Frontend: EJS templating engine with responsive CSS
- Database: PostgreSQL
- Authentication: JWT (JSON Web Tokens)
- Session Management: express-session
- Payment Integration: PayOS API
- Development: LiveReload for efficient development workflow
src/
├── app.js # Main application entry point
├── config/ # Configuration files
│ └── db.js # Database connection setup
├── controllers/ # Request handlers for different roles
├── middlewares/ # Authentication and authorization middleware
├── models/ # Database models and SQL scripts
├── public/ # Static assets (CSS, JS, images)
├── routes/ # Route definitions for different user roles
└── views/ # EJS templates for UI rendering
- Node.js (v14+ recommended)
- PostgreSQL
- npm or yarn
- Clone the repository
git clone https://github.com/yourusername/HUSTHub.git
cd HUSTHub- Install dependencies
npm install- Set up environment variables
# Create a .env file in the project root with the following variables
PORT=3000
DB_USER=your_db_user
DB_HOST=localhost
DB_NAME=husthub
DB_PASSWORD=your_db_password
DB_PORT=5432
JWT_SECRET=your_jwt_secret
PAYOS_CLIENT_ID=your_payos_client_id
PAYOS_API_KEY=your_payos_api_key
PAYOS_CHECKSUM_KEY=your_payos_checksum_key- Set up the database
# Import the database schema
psql -U your_db_user -d husthub -f models/husthub_postgre.sql
# Optional: Import sample data
psql -U your_db_user -d husthub -f models/data_generate.sql- Start the application
npm startThe application will be available at http://localhost:3000
For development with auto-reload:
npm run dev- Students: Login with student ID
- Teachers: Login with teacher ID
- Administrators: Login with admin credentials
- Tran Quang Huy
- Ng Luong Hoang Tung
- Ngo Manh Hung
- Nguyen Trung Hieu
This project is part of the Software Engineering course at Hanoi University of Science and Technology.