An enterprise-ready, production-grade Learning Management System built with Next.js 16, React 19, TypeScript, and Tailwind CSS v4.
Featuring native Arabic (RTL) & English (LTR) bilingual support with 3 isolated portals for Admins, Instructors, and Students.
π Explore Live Demo β’ π‘οΈ Admin Panel Demo β’ π¨βπ« Instructor Portal β’ π Student Portal
The live demo on Vercel has Demo Mode enabled (DEMO_MODE=true), allowing clients and reviewers to test all 3 role-isolated dashboards immediately without setting up a backend database.
| Role | Demo Email | Password | Direct Live URL |
|---|---|---|---|
| π‘οΈ Administrator | [email protected] |
admin123 (or any) |
Open Admin Panel |
| π¨βπ« Instructor | [email protected] |
demo123 (or any) |
Open Instructor Workspace |
| π Student | [email protected] |
demo123 (or any) |
Open Student Portal |
π‘ Tip: You can either enter the demo credentials above on the login pages or click any direct portal link above to preview the dashboards instantly.
Acadify is an all-in-one educational ecosystem designed to streamline academy management, course deliveries, tutor workflows, and student learning journeys. Crafted with the latest web standards (Next.js 16 App Router, React 19 Server Components, and Tailwind CSS v4), Acadify delivers blazing-fast page loads, effortless SEO prerendering, and fluid UX transitions.
It is natively localized with full bidirectional support (Arabic RTL & English LTR), making it the premier choice for regional and global educational institutions alike.
| π Modern Landing Page | π‘οΈ Admin KPI Dashboard |
|---|---|
![]() |
![]() |
| π·οΈ Catalog & Multi-Tier Pricing | π¨βπ« Instructor Management |
|---|---|
![]() |
![]() |
| π° Financial Wallet & Payouts | π Student Dashboard Portal |
|---|---|
![]() |
![]() |
- Overview Analytics: Live counts for enrolled students, active instructors, pending requests, and financial transaction totals.
- Dynamic Catalog & Pricing Engine: Configure country-specific currencies, academic fields, majors, hourly session rates, and subscription bundles.
- User Directory: Filter, search, and manage verified student and instructor accounts.
- Workflow & Orders Management: Review tutorial orders, assignment deliverables, and status updates.
- Financial Wallet Control: Account balance locking/unlocking, manual credit charging, and tutor withdrawal approvals.
- Dedicated teaching dashboard with task tracking and upcoming schedule.
- Manage one-on-one sessions, trial lesson offerings, and subject bids.
- Review submitted student homework and assignments with direct feedback.
- Personal earnings tracking, balance overview, and automated withdrawal requests.
- Course discovery, enrollment, and personalized learning dashboard.
- Interactive assignment submission with real-time progress indicators.
- Live order chat interface for direct communication with assigned instructors.
- Personal wallet balance, credit top-ups, and subscription tier management.
- Built with
next-intl: Clean locale routing (/arand/en) with zero layout flicker. - Bidirectional Layouts: Flexbox and CSS Grid alignments, chevron indicators, and form layouts automatically flip when switching between Arabic (Right-to-Left) and English (Left-to-Right).
- Centralized Dictionary: Fully translated JSON strings inside
messages/ar.jsonandmessages/en.jsonfor rapid customization.
| Layer | Technology | Description |
|---|---|---|
| Framework | Next.js 16.2 (App Router) | Hybrid rendering, Turbopack builds, Server Actions & Server Components |
| UI Library | React 19.2 | Concurrent mode, optimistic UI updates, zero unnecessary re-renders |
| Styling | Tailwind CSS v4 | Modern CSS variables, lightning-fast compiler, zero configuration overhead |
| Type Safety | TypeScript 5.x | Strict typing across API contracts, props, and session models |
| Localization | next-intl | First-class internationalization with native RTL direction control |
| Icons | Lucide React | Clean, minimalist SVG iconography |
| Testing | Playwright & Node Test Runner | E2E frontend audits, accessibility testing, and unit tests |
acadify/
βββ app/
β βββ [locale]/ # Localized routes (Arabic & English)
β β βββ (admin)/admin/ # Admin portal (Overview, Pricing, Users, Wallet)
β β βββ (instructor)/ # Instructor workspace & task management
β β βββ (student)/ # Student learning dashboard & assignments
β β βββ (guest)/ # Marketing pages (Landing, About, Contact, Help)
β β βββ auth/ # Multi-role authentication & registration flows
β βββ components/ # Reusable UI primitives (Buttons, Modals, Cards, Navbars)
βββ lib/
β βββ api/ # Typed REST API client & error handling
β βββ auth/ # Session management, cookies & demo bypass logic
βββ messages/
β βββ ar.json # Arabic translations (RTL)
β βββ en.json # English translations (LTR)
βββ public/ # Static branding, logos, and web assets
βββ screenshots/ # High-resolution documentation images
βββ proxy.ts # Edge middleware & internationalization route guard
βββ next.config.ts # Next.js build configuration
βββ package.json # Project scripts & package definitions
- Node.js:
18.17.0or later (Node.js 20 LTS recommended) - Package Manager:
npm,yarn, orpnpm
# Clone the repository
git clone https://github.com/zvinn/acadify.git
cd acadify
# Install dependencies
npm install# Copy the example environment file
cp .env.example .env.localnpm run devOpen http://localhost:3000 with your browser to experience Acadify.
| Variable | Default | Purpose |
|---|---|---|
DEMO_MODE |
false |
When set to true, unlocks all admin & portal pages with mock data for instant preview without a database. |
API_BASE_URL |
https://api.yourdomain.com |
Base URL for the backend REST API. |
AUTH_SECRET |
secret-string |
Key used for encrypting session cookies. |
NEXT_PUBLIC_APP_URL |
http://localhost:3000 |
Canonical public URL of the application. |
Acadify is pre-configured for instant zero-configuration deployment on Vercel:
- Import this repository into your Vercel Dashboard.
- Set
DEMO_MODE=true(or configure your liveAPI_BASE_URL). - Click Deploy.
# Build production bundle
npm run build
# Start production server
npm run startTip: Use pm2 start npm --name "acadify" -- start to run as a managed background service on Linux.
Developed with β€οΈ by Mohamed Saad (@zvinn)
For commercial licensing, custom features, or inquiries, reach out via GitHub.





