Skip to content

Repository files navigation

🎓 TechCourse Dashboard

Laravel Version PHP Version Bootstrap Version MySQL

A robust and modern Course Management System built with Laravel. It features a fully-responsive, custom RTL dark-themed administrative dashboard for web users, alongside a rich set of REST APIs for mobile or client-side applications.


📖 Extended Documentation

To dive deeper into the technical specifics of this system, refer to the following guides:


✨ Features

🖥️ Administrative Web Dashboard (RTL Supported)

  • Analytics & Overview: Interactive dashboard cards displaying counts of users, courses, categories, instructors, notifications, certificates, and ratings.
  • User Management: Control administrator, instructor, and student accounts.
  • Course & Category Catalog: Create, read, update, and delete courses and their respective categories.
  • Certificate Issuance: Issue and attach PDF/file certificates to students who complete courses.
  • Rating Monitoring: Track feedback and reviews for both instructors and courses.
  • Dynamic Notifications: Send direct target notifications to users.

🔌 RESTful APIs (routes/api.php)

  • Authentication: Register, Login, Logout, and Profile (me) endpoints.
  • Category & Course Discovery: Filter courses by category and view details.
  • Ratings & Reviews: Query aggregate review scores for both courses and instructors.
  • Personalized Notifications: Fetch user notifications and mark them as read.

🛠️ Tech Stack


📦 Database Schema & Models

erDiagram
    User ||--o{ Certificate : receives
    User ||--o{ Rating : gives
    User ||--o{ Notification : receives
    Category ||--o{ Course : contains
    Instructor ||--o{ Course : teaches
    Course ||--o{ Certificate : awards
    Course ||--o{ Rating : has
    Instructor ||--o{ Rating : has
Loading
Model Table Key Fields Description
User users name, email, role, phone Handles authentication and roles (admin, instructor, student).
Category categories name, description, cat_cover Educational domains/tracks.
Instructor instructors name, email, bio, image, phone Profiles of professional instructors.
Course courses title, description, cover, price, start_date Main training courses linked to category & instructor.
Certificate certificates user_id, course_id, certificate_file, issued_at Verified course completion records.
Rating ratings user_id, course_id, instructor_id, rating Feedback system for courses and instructors.
Notification notifications title, message, is_read, user_id User alert and messaging system.

🚀 Getting Started

Follow these steps to set up and run the project locally.

Prerequisites

  • PHP >= 8.2
  • Composer
  • Node.js & NPM
  • XAMPP / WampServer (MySQL)

Installation Steps

  1. Clone the Repository

    git clone https://github.com/mubarak-saeed/tech_course_dashboard.git
    cd tech_course_dashboard
  2. Install Dependencies

    composer install
    npm install
  3. Configure Environment Variables Copy the example environment file:

    cp .env.example .env

    Open .env and set your database connection details:

    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=tec_course_dashbourd
    DB_USERNAME=root
    DB_PASSWORD=
  4. Generate Application Key

    php artisan key:generate
  5. Run Migrations & Seed Database Note: Make sure your MySQL server is running and the database tec_course_dashbourd is created.

    php artisan migrate --seed

    Or run manually:

    php artisan migrate
    php artisan db:seed
  6. Start Development Server

    php artisan serve

    Open your browser and navigate to http://127.0.0.1:8000.

🔑 Default Credentials

To log into the dashboard:

  • Email: admin@admin.com
  • Password: 12541254

📡 API Reference

Authentication Endpoints

Method Endpoint Description
POST /api/register Register a new user account
POST /api/login Login and receive API token
POST /api/logout Revoke current token
GET /api/me/{id} Get authenticated user info

Core Catalog & Data Endpoints

Method Endpoint Description
GET /api/categories Retrieve all categories
GET /api/courses List all courses with ratings
GET /api/courses/category/{category_id} List courses by category
GET /api/ratings/course/{courseid} Get course rating statistics
GET /api/ratings/instructor/{instructorid} Get instructor rating statistics
GET /api/notifications/{userid} Retrieve user notifications
PUT /api/notifications/{userid} Update notifications state (Read/Unread)

📄 License

This project is licensed under the MIT License. Feel free to use and modify.

About

A robust and modern Course Management System built with Laravel. It features a fully-responsive, custom RTL dark-themed administrative dashboard for web users, alongside a rich set of REST APIs for mobile or client-side applications.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages