Skip to content

Latest commit

 

History

88 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HUSTHub - School Management System

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.

Overview

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

Features

For Students

  • 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

For Teachers

  • 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

For Administrators

  • 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

Technology Stack

  • 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

Project Structure

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

Installation

Prerequisites

  • Node.js (v14+ recommended)
  • PostgreSQL
  • npm or yarn

Setup Instructions

  1. Clone the repository
git clone https://github.com/yourusername/HUSTHub.git
cd HUSTHub
  1. Install dependencies
npm install
  1. 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
  1. 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
  1. Start the application
npm start

The application will be available at http://localhost:3000

Development

For development with auto-reload:

npm run dev

User Authentication

  • Students: Login with student ID
  • Teachers: Login with teacher ID
  • Administrators: Login with admin credentials

Contributors

  • Tran Quang Huy
  • Ng Luong Hoang Tung
  • Ngo Manh Hung
  • Nguyen Trung Hieu

License

This project is part of the Software Engineering course at Hanoi University of Science and Technology.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages