Skip to main content

Frontend Architecture Overview

System Architecture

Technology Stack

ComponentTechnologyPurpose
FrameworkNext.js 14Core application framework
LanguageTypeScriptType-safe development
UI LibraryAnt DesignComponent library
State ManagementTanStack QueryServer state management
StylingTailwind CSS, Ant DesignResponsive design and UI components
HTTP ClientAxiosAPI requests
Internationalizationnext-intl, Custom ServiceMulti-language support
Form HandlingAnt Design FormsUser input management
File ProcessingXLSXExcel import/export

Application Layers

graph TD
A[Presentation Layer] --> B[Business Logic Layer]
B --> C[Data Access Layer]
C --> D[API Layer]

Core Features

Student Management

  • CRUD Operations
  • Bulk Import/Export
  • Status Tracking

Course Management

  • Course Catalog
  • Prerequisites
  • Scheduling
  • Capacity Management

Faculty Management

  • Organizational Structure
  • Staff Management
  • Course Assignments

Class Registration

  • Enrollment Process
  • Prerequisite Checking
  • Capacity Monitoring
  • Schedule Conflicts

Score Management

  • Grade Entry
  • Transcript Generation
  • Statistical Analysis
  • Grade Distribution

Project Structure

src/
├── app/ # Next.js App Router
│ ├── course-management/ # Course features
│ ├── faculty-management/ # Faculty features
│ ├── student-management/ # Student features
│ ├── class-registration/ # Registration features
│ ├── score-management/ # Grade management
│ └── layout.tsx # Root layout
├── components/ # Shared components
│ └── ui/ # UI components
├── interfaces/ # TypeScript definitions
├── libs/ # Core libraries
│ ├── api/ # API clients
│ ├── hooks/ # Custom hooks
│ ├── services/ # Business services
│ ├── stores/ # State management
│ ├── utils/ # Utilities
│ └── validators/ # Form validators
├── messages/ # i18n message files
└── middleware.ts # Next.js middleware

Each feature module contains:

  • Page Component: Main route handler
  • Feature Components: Specialized UI components
  • Modal Components: Interactive dialogs
  • Table Components: Data display components

Data Flow Architecture

┌─────────────┐    ┌──────────────┐    ┌─────────────┐    ┌──────────┐
│ User UI │───▶│ Actions │───▶│ Hooks │───▶│ API │
└─────────────┘ └──────────────┘ └─────────────┘ └──────────┘
▲ │ │
│ ▼ │
┌─────────────┐ ┌──────────────┐ ┌─────────────┐ │
│ Component │◀───│ State │◀───│React Query │◀────────┘
│ Update │ │ Update │ │ Cache │
└─────────────┘ └──────────────┘ └─────────────┘

Core Features Implementation

Student Management

  • CRUD Operations: Create, read, update, delete students
  • Bulk Import: Excel file import with validation
  • Export Functions: PDF and Excel export capabilities
  • Advanced Search: Multi-criteria search and filtering
  • Status Management: Student status tracking

Course Management

  • Course Catalog: Complete course information management
  • Prerequisites: Course dependency management
  • Scheduling: Time and location management
  • Capacity Management: Student enrollment limits

Faculty Management

  • Organizational Structure: Faculty and department hierarchy
  • Staff Management: Faculty member information
  • Course Assignments: Faculty-course relationships

Class Registration

  • Enrollment Process: Student course registration
  • Prerequisite Checking: Automatic validation
  • Capacity Monitoring: Real-time availability tracking
  • Schedule Conflicts: Automatic conflict detection

Score Management

  • Grade Entry: Score input and validation
  • Transcript Generation: Academic record compilation
  • Statistical Analysis: Performance analytics
  • Grade Distribution: Visual grade analysis

Translation System Architecture

┌─────────────┐    ┌──────────────┐    ┌─────────────────┐
│ API Data │───▶│ Translation │───▶│ Translated │
│ (Vietnamese)│ │ Service │ │ Data (English) │
└─────────────┘ └──────────────┘ └─────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────┐ ┌──────────────┐ ┌─────────────────┐
│Field Mapping│ │ External API │ │ Cache Storage │
│ Detection │ │ (MyMemory) │ │ (Performance) │
└─────────────┘ └──────────────┘ └─────────────────┘

Translation Features

  • Dynamic Translation: Real-time API response translation
  • Bidirectional Support: Vietnamese ↔ English
  • Field Mapping: Intelligent field detection for translation
  • Caching System: Performance optimization
  • Fallback Handling: Graceful error handling

State Management

React Query Integration

┌─────────────┐    ┌──────────────┐    ┌─────────────┐
│ Component │───▶│ useQuery │───▶│ API Call │
└─────────────┘ └──────────────┘ └─────────────┘
▲ │ │
│ ▼ ▼
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ Re-render │◀───│ Cache │◀───│ Response │
└─────────────┘ └──────────────┘ └─────────────┘

Query Strategies

  • Data Fetching: Automatic background refetching
  • Caching: Intelligent cache invalidation
  • Optimistic Updates: Immediate UI updates
  • Error Handling: Comprehensive error states
  • Loading States: Skeleton loading components

Component Architecture

Component Hierarchy

┌─────────────────────────────────────────────────────────┐
│ App Layout │
├─────────────────────────────────────────────────────────┤
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐ │
│ │ Header │ │ Sidebar │ │ Main Content │ │
│ └─────────────┘ └─────────────┘ └─────────────────┘ │
├─────────────────────────────────────────────────────────┤
│ Feature Pages │
├─────────────────────────────────────────────────────────┤
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐ │
│ │ Tables │ │ Modals │ │ Forms │ │
│ └─────────────┘ └─────────────┘ └─────────────────┘ │
├─────────────────────────────────────────────────────────┤
│ Shared Components │
└─────────────────────────────────────────────────────────┘

Component Types

  • Page Components: Route-level components
  • Feature Components: Business logic components
  • Modal Components: Interactive dialogs
  • Table Components: Data display with pagination
  • Form Components: Input handling and validation
  • UI Components: Reusable presentation components

API Integration

API Client Architecture

┌─────────────┐    ┌──────────────┐    ┌─────────────┐
│ Component │───▶│ API Hook │───▶│ API Client │
└─────────────┘ └──────────────┘ └─────────────┘
│ │
▼ ▼
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ Update │◀───│ Cache │◀───│ Server │
│ UI │ │ Manager │ │ Response │
└─────────────┘ └──────────────┘ └─────────────┘

API Features

  • RESTful Integration: Standard HTTP methods
  • Request/Response Types: Full TypeScript support
  • Error Handling: Centralized error processing
  • Loading States: Automatic loading indicators
  • Retry Logic: Failed request retry mechanisms

Form Handling

Form Architecture

┌─────────────┐    ┌──────────────┐    ┌─────────────┐
│ Form UI │───▶│ Validation │───▶│ Submit │
└─────────────┘ └──────────────┘ └─────────────┘
▲ │ │
│ ▼ ▼
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ Errors │◀───│ Rules │ │ Success │
│ Display │ │ Engine │ │ Callback │
└─────────────┘ └──────────────┘ └─────────────┘

Form Features

  • Real-time Validation: Field-level validation
  • Custom Validators: Business rule validation
  • File Upload: Excel import handling
  • Dynamic Forms: Conditional field rendering
  • Multi-step Forms: Complex form workflows

Internationalization

i18n Architecture

┌─────────────┐    ┌──────────────┐    ┌─────────────┐
│ Locale │───▶│ Messages │───▶│ Rendered │
│ Detection │ │ Loading │ │ Text │
└─────────────┘ └──────────────┘ └─────────────┘
│ │ │
▼ ▼ ▼
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ Cookie │ │ Static i18n │ │ Dynamic │
│ Storage │ │ (next-intl) │ │Translation │
└─────────────┘ └──────────────┘ └─────────────┘

Language Support

  • Static Translation: UI text through next-intl
  • Dynamic Translation: API content translation
  • Locale Switching: Real-time language switching
  • Fallback Handling: Default language fallback

File Processing

Import/Export Flow

┌─────────────┐    ┌──────────────┐    ┌─────────────┐
│ File Input │───▶│ Parser │───▶│ Validation │
│ (Excel) │ │ (XLSX) │ │ Rules │
└─────────────┘ └──────────────┘ └─────────────┘
│ │
▼ ▼
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ Export │◀───│ Format │◀───│ Data │
│ Download │ │ Conversion │ │ Processing │
└─────────────┘ └──────────────┘ └─────────────┘

Processing Features

  • Excel Import: Bulk data import with validation
  • PDF Export: Formatted document generation
  • Excel Export: Data export with formatting
  • Error Reporting: Import validation feedback
  • Progress Tracking: Large file processing status

Performance Optimization

Optimization Strategies

┌─────────────┐    ┌──────────────┐    ┌─────────────┐
│ Code │ │ Data │ │ Asset │
│ Splitting │ │ Caching │ │Optimization │
└─────────────┘ └──────────────┘ └─────────────┘
│ │ │
▼ ▼ ▼
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ Lazy │ │ React │ │ Image │
│ Loading │ │ Query │ │Optimization │
└─────────────┘ └──────────────┘ └─────────────┘

Performance Features

  • Route-based Splitting: Automatic code splitting
  • Component Lazy Loading: On-demand component loading
  • Query Caching: Intelligent data caching
  • Pagination: Server-side data pagination
  • Debounced Search: Optimized search inputs

Error Handling

Error Boundary System

┌─────────────┐    ┌──────────────┐    ┌─────────────┐
│ Global │ │ Route │ │ Component │
│ Handler │ │ Boundary │ │ Boundary │
└─────────────┘ └──────────────┘ └─────────────┘
│ │ │
▼ ▼ ▼
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ Fallback │ │ Retry │ │ Local │
│ UI │ │ Mechanism │ │ Recovery │
└─────────────┘ └──────────────┘ └─────────────┘

Error Handling Features

  • Graceful Degradation: Fallback UI components
  • User-friendly Messages: Clear error communication
  • Retry Capabilities: Failed operation retry
  • Error Logging: Development debugging support
  • Recovery Mechanisms: Automatic error recovery

This architecture provides a robust, scalable foundation for the student management system with clear separation of concerns, comprehensive error handling, and excellent user experience through internationalization and performance optimization.