Skip to main content

Getting Started with Your App Development

Required Tools for Development

Backend (Spring Boot)

Frontend (Next.js)

Install and Run the Project

Step 1: Clone the Source Code

git clone https://github.com/nguyen-anh-hao/HHKT-Ex-TKPM.git
cd HHKT-Ex-TKPM

Step 2: Install and Run Backend

  1. Start Docker & database:
cd server
docker-compose up -d

💡 After the container runs successfully, seed the database using the .sql files in src/main/resources/db.

  1. Run the Spring Boot application:
  • Open the project in IntelliJ IDEA
  • Find and open the BackendApplication.java file
  • Click the Run button or use the terminal:
mvn spring-boot:run

Step 3: Install and Run Frontend

  1. Install dependencies:
cd client
npm install
  1. Run the Next.js application:
npm run dev

Step 4: Access the Application

Source Code Structure

Frontend (client/)

client/
├── src/
│ ├── app/ # Main features
│ │ ├── class-management/ # Class management
│ │ ├── course-management/ # Course management
│ │ ├── enroll-class/ # Class enrollment
│ │ ├── reference-management/# Reference management
│ │ ├── status-rules-configuration/ # Rules configuration
│ │ ├── student-management/ # Student management
│ │ └── transcript/ # Transcript
│ ├── components/ # UI components
│ ├── interfaces/ # TypeScript interfaces
│ └── libs/ # Utilities
│ ├── api/ # API calls
│ ├── hooks/ # Custom hooks
│ ├── services/ # Business logic
│ ├── stores/ # State management
│ ├── utils/ # Helper functions
│ └── validators/ # Form validation

Backend (server/)

server/
├── src/
│ ├── main/
│ │ ├── java/org/example/backend/
│ │ │ ├── common/ # Shared utilities
│ │ │ ├── config/ # Configuration
│ │ │ ├── controller/ # API endpoints
│ │ │ ├── domain/ # Entities
│ │ │ ├── dto/ # Data transfer objects
│ │ │ │ ├── data/ # Data DTOs
│ │ │ │ ├── request/ # Request DTOs
│ │ │ │ └── response/ # Response DTOs
│ │ │ ├── mapper/ # Object mapping
│ │ │ ├── repository/ # Data access
│ │ │ ├── service/ # Business logic
│ │ │ │ ├── Import/ # Import services
│ │ │ │ ├── export/ # Export services
│ │ │ │ └── impl/ # Service implementations
│ │ │ └── validator/ # Data validation
│ │ └── resources/
│ │ ├── config/ # Configuration files
│ │ ├── db/ # Database scripts
│ │ └── application.yml # Main config
│ └── test/ # Unit tests

Main Features

Student Management

  • View student list
  • Add, edit, delete students
  • Manage detailed information

Category Management

  • Faculty
  • Program
  • Student status
  • Email domain

Course Management

  • Add, edit, delete courses
  • Manage detailed information

Class Management

  • Create and manage classes
  • Assign lecturers
  • Manage class schedules

Class Enrollment

  • Register/unregister for classes
  • View class schedules
  • Manage grades

Transcript

  • View transcript
  • Enter grades
  • Calculate GPA

Rules Configuration

  • Status transition rules
  • Grading rules
  • Enrollment rules

Multi-language Support (v6.0)

  • Support for multiple languages
  • Easy language switching