Skip to content

Latest commit

Β 

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸŽ“ StudyMart β€” Modern E-Learning & Digital Publishing Platform

An Arabic-First, High-Performance Single Page Application for Online Courses, Digital Books, & Platform Administration

Developer Framework Bundler Styling Status


πŸ‘¨β€πŸ’» About the Developer

Eslam Adel (Ψ₯Ψ³Ω„Ψ§Ω… ΨΉΨ§Ψ―Ω„)

Role & Background: Computer Science Student & Frontend Software Engineer focused on building modern, high-performance web applications, intuitive user interfaces, and robust client architectures.

🌐 GitHub: eslam-adel25
βœ‰οΈ Contact: eslam.adel2596@gmail.com
πŸ“ž Phone: +20 1153054568


πŸ“– About StudyMart

StudyMart is a full-featured, offline-first E-Learning & Digital Books marketplace engineered specifically for Arabic-speaking educators and students. Built with React 19, Vite, Tailwind CSS, and modular ES JavaScript, StudyMart combines video course streaming, interactive PDF book reading, quiz assessment, teacher revenue management, and platform administrative governance into a single, cohesive web application.


πŸš€ Key Highlights & Architectural Strengths

  • πŸ‘‘ Role-Based Access Control (RBAC): Enforces distinct capabilities across 4 roles (Platform Owner, Teacher, Student, Guest) with automatic paid content bypass for Platform Owner auditing.
  • πŸ“ RTL-First Arabic Experience: Engineered natively in Arabic (dir="rtl") with Tajawal display typography, responsive drawer sidebars, and custom dark/light theme switching.
  • πŸ“š Digital PDF Book Reader: Embedded client-side PDF viewer powered by PDF.js with page navigation, zoom, bookmarks, and configurable free preview page limits.
  • 🎬 Interactive Learning Portal: Course video streaming player, section/lesson breakdown, progress checkmarks, downloadable resources, and auto-generated completion certificates.
  • πŸ€– AI-Powered Question Bank: Question creation engine with Google Gemini AI integration (@google/genai) for automated quiz question generation.
  • 🧾 E-Commerce & Printable Receipts: Shopping cart, promo codes, simulated payment gateways (Credit Card, Vodafone Cash, InstaPay), and PDF receipt invoice generation (jsPDF / html2pdf.js).
  • πŸ›‘οΈ Account Governance & Suspension: Real-time student blocking and teacher suspension engine with custom support contact modals.

πŸ“ System Architecture

graph TD
    Client[Browser / Client] --> Router[Hash Route Controller js/app.js]
    
    subgraph Frontend Architecture
        Router --> ReactCore[React 19 Subsystem src/App.jsx]
        Router --> AuthSvc[Auth Service & Storage]
        Router --> LayoutSvc[Layout & UI Services]
        Router --> CourseSvc[Course & Video Engine]
        Router --> BookSvc[Digital Book Engine]
        Router --> OwnerSvcs[Platform Owner Admin Services]
        Router --> TeacherSvcs[Teacher Management Services]
    end

    subgraph Data & Storage Layer
        AuthSvc <--> LocalStorage[(Browser localStorage)]
        CourseSvc <--> StaticData[Mock Datasets /js/data/]
    end

    subgraph Integrated Engines
        BookSvc --> PDFJS[PDF.js Reader Engine]
        CourseSvc --> GeminiAI[Google GenAI API @google/genai]
        Invoices[Invoice Service] --> jsPDF[jsPDF & html2pdf.js]
    end
Loading

πŸ” Role & Permission Overview

Role Primary Dashboard Route Core Administrative Capabilities
Platform Owner πŸ‘‘ #owner/homepage-management Homepage feature editor, student accounts & blocking, teacher accounts & suspension, payout approvals, platform 10% revenue view, bypass paid content restrictions.
Teacher / Instructor πŸ‘¨β€πŸ« #teacher/dashboard Course Builder, Digital Book Builder, owned content management, Question Bank & Gemini AI, student gradebook, wallet & payout requests, sales analytics.
Enrolled Student πŸŽ“ #my-courses / #my-books Course enrollment, video player, PDF book reader, wishlist, cart & checkout, purchase history & PDF receipts, course completion certificates.
Public Visitor / Guest 🌐 #home / #courses Public landing page, course catalog, book catalog, instructor public profiles, dedicated public review feed (#public-reviews).

πŸ“ Repository Structure

studymart/
β”œβ”€β”€ css/                        # Global & component stylesheet rules
β”œβ”€β”€ data/                       # Initial JSON/JS mock datasets (courses, books, users)
β”œβ”€β”€ js/                         # Modular ES JavaScript core
β”‚   β”œβ”€β”€ components/             # Reusable vanilla JS UI renderers
β”‚   β”œβ”€β”€ pages/                  # Page layout modules
β”‚   β”œβ”€β”€ services/               # Domain business logic & services
β”‚   β”‚   β”œβ”€β”€ accountStatusService.js   # Account blocking & suspension engine
β”‚   β”‚   β”œβ”€β”€ authService.js            # Auth modal, login/register, Google OAuth
β”‚   β”‚   β”œβ”€β”€ courseBuilderService.js   # Course creation wizard
β”‚   β”‚   β”œβ”€β”€ homepageManagementService.js # Owner homepage editor
β”‚   β”‚   β”œβ”€β”€ ownerStudentsService.js   # Owner student management
β”‚   β”‚   β”œβ”€β”€ ownerTeachersService.js   # Owner teacher management
β”‚   β”‚   β”œβ”€β”€ permissionService.js      # Central RBAC permission checks
β”‚   β”‚   β”œβ”€β”€ sidebarService.js         # Responsive navigation sidebar
β”‚   β”‚   └── ...                       # Additional domain services
β”‚   β”œβ”€β”€ utils/                  # Helper utilities (alerts, formatters)
β”‚   └── app.js                  # Main SPA hash router & initialization
β”œβ”€β”€ src/                        # React 19 Subsystem
β”‚   β”œβ”€β”€ components/             # React dashboard sidebars & course cards
β”‚   β”œβ”€β”€ App.jsx                 # Secondary React router entry
β”‚   └── main.jsx                # React DOM mount point
β”œβ”€β”€ docs/                       # Comprehensive System Documentation
β”‚   β”œβ”€β”€ architecture.md         # Detailed system architecture
β”‚   β”œβ”€β”€ features.md             # Complete feature inventory
β”‚   β”œβ”€β”€ roles-and-permissions.md# RBAC permissions matrix
β”‚   β”œβ”€β”€ routing.md              # Hash routing map
β”‚   β”œβ”€β”€ authentication.md       # Auth & account status lifecycle
β”‚   β”œβ”€β”€ data-model.md           # Data schemas & localStorage keys
β”‚   β”œβ”€β”€ ui-ux.md                # Design system & RTL rules
β”‚   β”œβ”€β”€ localization.md         # Arabic i18n & formatting
β”‚   β”œβ”€β”€ setup.md                # Installation & run guide
β”‚   β”œβ”€β”€ security.md             # Security analysis & guidelines
β”‚   β”œβ”€β”€ limitations.md          # Project scope & boundaries
β”‚   └── changelog.md            # Release history
β”œβ”€β”€ index.html                  # Main SPA HTML entry point
β”œβ”€β”€ package.json                # Project dependencies & scripts
└── vite.config.js              # Vite build configuration

πŸ› οΈ Technology Stack

Component Library / Tool Version Purpose
Core UI Engine React ^19.0.1 Component UI subsystem
Bundler & Server Vite ^6.2.3 Hot Module Replacement & build bundler
Styling Tailwind CSS ^4.1.14 Utility-first CSS styling via @tailwindcss/vite
Icons Lucide React ^0.546.0 Vector UI icons
AI Question Gen Google GenAI ^2.4.0 Gemini AI quiz generation
PDF Reader PDF.js 3.11.174 Canvas digital book reader
PDF Invoices jsPDF / html2pdf ^4.2.1 / ^0.14.0 Printable receipt invoice generator

⚑ Quick Start & Installation

1. Clone & Install

git clone https://github.com/eslam-adel25/studymart.git
cd studymart
npm install

2. Configure Environment Variables

cp .env.example .env

3. Run Local Development Server

npm run dev

Open http://localhost:3000 in your web browser.

4. Build for Production

npm run build
npm start

πŸ“š Deep Documentation (docs/)

Explore the dedicated documentation files inside the docs/ directory for in-depth technical references:


πŸ‘€ Author & Contact

Eslam Adel β€” Frontend Software Developer & CS Student

  • GitHub: @eslam-adel25
  • Email: eslam.adel2596@gmail.com | 2005eaja@gmail.com
  • Phone: +20 1153054568

About

Modern responsive e-learning platform UI built with HTML, CSS, and JavaScript.

Topics

Resources

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages