Skip to content

JamesM272/school-prac

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Greenfield Institute Course Registration System

Project Overview

This is a web-based course registration system developed for Greenfield Institute to streamline the course registration process, improve data accuracy, and enhance the user experience for both students and administrators.

Architecture

The system implements a three-tier architecture:

1. Presentation Layer (UI Layer)

  • Technologies: HTML, CSS, JavaScript
  • Purpose: Provides a clean, responsive, and interactive user interface
  • Features:
    • Login and registration forms
    • Student dashboard with course browsing and registration
    • Admin dashboard for course management
    • Responsive design for mobile compatibility
    • AJAX for dynamic content updates

2. Application Layer (Business Logic Layer)

  • Technologies: PHP
  • Purpose: Handles user authentication, input validation, and business rules
  • Features:
    • User authentication and session management
    • Input validation and sanitization
    • Business rules enforcement (e.g., preventing duplicate registrations, capacity limits)
    • Secure password handling with hashing
    • Role-based access control (student vs admin)

3. Data Layer

  • Technologies: MySQL
  • Purpose: Stores and manages all application data
  • Schema:
    • users: User accounts with roles
    • courses: Course information and capacity
    • registrations: Student-course relationships

XML Integration

The system uses XML for representing structured course data:

  • xml/courses.xml: Contains course information in XML format
  • Can be used for data exchange, backup, or integration with other systems
  • Example structure:
<courses>
    <course id="1">
        <name>Introduction to Computer Science</name>
        <description>Basic concepts of programming</description>
        <capacity>30</capacity>
        <enrolled>0</enrolled>
    </course>
</courses>

✨ Enhanced Features

Visual Design Improvements:

  • Hero banners with school-themed imagery
  • Interactive dashboards with statistics cards
  • Feature icons representing educational themes
  • Smooth animations and hover effects
  • Responsive design for all devices
  • Gradient backgrounds for modern appeal
  • Card-based layouts with visual hierarchy

User Experience Enhancements:

  • Welcome sections with engaging content
  • Quick stats showing relevant metrics
  • Animated elements for better interactivity
  • Visual feedback on user actions
  • Professional color schemes and typography

Security Features

  • Password hashing using PHP's password_hash()
  • Session-based authentication
  • Input validation and sanitization
  • Role-based access control
  • Protection against SQL injection using prepared statements

Additional Features

  • Responsive design for mobile devices
  • AJAX for seamless user interactions
  • Real-time course availability updates
  • Search and filter functionality
  • Clean, modern UI with intuitive navigation

File Structure

/
├── frontend/
│   ├── index.html              # Login/Registration page
│   ├── student_dashboard.html  # Student interface
│   ├── admin_dashboard.html    # Administrator interface
│   ├── css/
│   │   └── styles.css          # Application styles
│   ├── js/
│   │   └── scripts.js          # Client-side JavaScript
│   ├── images/                 # Site images and PDF assets
│   └── xml/
│       └── courses.xml         # Course data in XML
├── backend/
│   ├── php/
│   │   ├── config.php          # Database configuration
│   │   ├── login.php           # Authentication
│   │   ├── register.php        # User registration
│   │   ├── user.php            # User info endpoint
│   │   ├── courses.php         # Course operations
│   │   ├── admin_courses.php   # Admin course management
│   │   └── logout.php          # Session termination
│   ├── sql/
│   │   └── database.sql        # Database schema and sample data
│   ├── server.js              # Optional Node backend server
│   └── package.json           # Node dependencies/metadata
└── README.md

Image Assets Required

To make the system more interactive and welcoming, add the following images to the images/ directory:

Login Page Images:

  • school-banner.jpg - A welcoming school campus image (1200x400px recommended)
  • students-studying.jpg - Students studying together (400x300px recommended)
  • books-icon.png - Books icon (60x60px)
  • students-icon.png - Students group icon (60x60px)
  • graduation-icon.png - Graduation cap icon (60x60px)

Student Dashboard Images:

  • student-dashboard.jpg - Student studying/working on computer (500x300px recommended)
  • course-icon.png - Course/book icon (50x50px)
  • enrolled-icon.png - Checkmark/enrollment icon (50x50px)
  • progress-icon.png - Progress/chart icon (50x50px)

Admin Dashboard Images:

  • admin-dashboard.jpg - Professional/administration setting (500x300px recommended)
  • total-courses-icon.png - Books stack icon (50x50px)
  • students-registered-icon.png - People/students icon (50x50px)
  • active-registrations-icon.png - Registration/checklist icon (50x50px)

Image Recommendations:

  • Use high-quality, relevant educational images
  • Ensure images are optimized for web (under 500KB each)
  • Use PNG format for icons, JPG for photos
  • Consider copyright-free images from sources like Unsplash, Pexels, or create custom graphics

Technology Contributions

  • HTML: Provides the structure and semantic markup for web pages
  • CSS: Handles visual presentation and responsive design
  • JavaScript: Enables dynamic client-side interactions and AJAX requests
  • PHP: Manages server-side logic, database interactions, and session handling
  • MySQL: Stores persistent data with relational integrity
  • XML: Facilitates structured data representation and exchange

Three-Tier Architecture Benefits

  1. Separation of Concerns: Each layer has a distinct responsibility
  2. Maintainability: Changes in one layer don't affect others
  3. Scalability: Layers can be scaled independently
  4. Security: Business logic is protected on the server side
  5. Flexibility: Different technologies can be used in each layer

This implementation demonstrates a complete, functional web application that addresses real-world requirements while following best practices in web development and system architecture.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors