An Arabic-First, High-Performance Single Page Application for Online Courses, Digital Books, & Platform Administration
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
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.
- π 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.jswith 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.
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
| 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). |
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
| 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 |
git clone https://github.com/eslam-adel25/studymart.git
cd studymart
npm installcp .env.example .envnpm run devOpen http://localhost:3000 in your web browser.
npm run build
npm startExplore the dedicated documentation files inside the docs/ directory for in-depth technical references:
- ποΈ System Architecture β Architectural design, layers, and component state flow.
- π Roles & Permission Matrix β Complete RBAC capabilities table.
- π Feature Inventory β Comprehensive list of all features by role.
- πΊοΈ Routing & Route Map β Hash route map and guard protections.
- π Authentication & Account Lifecycle β Session management, OAuth, and suspension modals.
- ποΈ Data Models & Schemas β Entity schemas and
localStoragekeys reference. - π¨ UI/UX & Design System β RTL design principles, Tajawal typography, and color tokens.
- π Localization & i18n β Arabic terminology and formatting.
- π» Installation & Setup Guide β Local setup, environment setup, and CLI scripts.
- π‘οΈ Security Architecture β Protection measures and security guidelines.
β οΈ Known Limitations β Scope boundaries and environment requirements.- π Changelog & Release Notes β Version release history.
Eslam Adel β Frontend Software Developer & CS Student
- GitHub: @eslam-adel25
- Email:
eslam.adel2596@gmail.com|2005eaja@gmail.com - Phone:
+20 1153054568