A functional smart-learning platform built with React. Students can browse courses, enroll, watch lessons, track their progress.
- Authentication — Login/logout with session persistence
- Protected Routes — Dashboard and courses require login
- Course Catalog — Browse, search and filter courses
- Course Detail — Full curriculum with lesson list
- Lesson Player — Inline HTML5 video, no redirects
- Progress Tracking — Mark lessons complete, see % progress
- Persistent State — Progress saved across page refreshes
| Layer | Technology |
|---|---|
| UI Framework | React 18 (functional components) |
| Routing | React Router v6 (nested routes) |
| State | Context API + custom hooks |
| Persistence | localStorage |
| Styling | CSS (CSS variables) |
| Build Tool | Vite |
| Version Control | Git + GitHub (branch workflow) |
src/
├── index.css # Global styles, design tokens, animations
├── main.jsx # App entry point
├── App.jsx # Providers + React Router v6 route tree
│
├── data/
│ └── courses.js # Course data, mock users
│
├── store/
│ ├── AuthContext.jsx # Login/logout + localStorage persistence
│ └── ProgressContext.jsx # Enrollment + lesson completion tracking
│
├── hooks/
│ ├── useAuth.js # Clean interface for auth context
│ └── useProgress.js # Clean interface for progress context
│
├── components/
│ ├── Navbar.jsx # Sticky nav, auth-aware
│ ├── ProtectedRoute.jsx # Route guard — redirects if not logged in
│ ├── ProgressBar.jsx # Reusable animated progress bar
│ ├── CourseCard.jsx # Catalog grid card
│
└── pages/
├── LoginPage.jsx # Login form with redirect logic
├── CatalogPage.jsx # Course grid with search + filter
├── DashboardPage.jsx # Personal stats + enrolled courses
├── CourseDetailPage.jsx # Course info + curriculum + enrollment
└── LessonPlayerPage.jsx # Video player + prev/next nav
git clone https://github.com/Alike001/aliflow-ai.git
cd aliflow-ai
npm install
npm run dev
http://localhost:5173
Follow these steps to see the full feature set:
- LOGIN → aish@learn.io / aish123
- BROWSE → Search and filter the course catalog
- ENROLL → Click a course → "Enroll Free →"
- WATCH → Click "Start Learning →" → video plays inline
- COMPLETE → Click "Mark Complete" or finish the video
- PROGRESS → Visit Dashboard → see your % progress
- LOGOUT → Click "Sign out" → session clears
- REFRESH → Log back in → all progress is restored
## Branch Workflow
main ├── feature/structure # Folder setup + course data + global CSS ├── feature/auth # AuthContext + ProgressContext + custom hooks ├── feature/courses # All UI components + pages (Navbar through Login) └── feature/progress # CourseDetail + LessonPlayer + App.jsx
Each branch was merged into `main` after completing its feature set.
Built by Ali as part of a React engineering project.
AI-assisted development using Claude (Anthropic).
## License
MIT