Back to Projects

نشير للأفضل

نشير للأفضل

Noshear lil-Afdal (نُشِيرُ لِلْأَفْضَلِ) 🤟

An innovative educational platform supporting deaf and mute students through interactive curricula taught in sign language.

📖 About

Noshear lil-Afdal ("We Point to the Best") is a web platform that provides flexible, inclusive learning experiences for deaf and hard-of-hearing students. Lessons are delivered as sign-language videos, organized by class → semester → subject, so students can easily find and follow the curriculum they need.

The project is developed by the Disability Science team at Zagazig University.

✨ Features

  • 🎓 Structured curriculum — content organized by class, semester, and subject
  • 🎥 Sign-language video lessons — streamed with optimized video playback
  • 🧭 Dynamic sidebar navigation — browse the full curriculum hierarchy
  • 🌙 Dark / light mode — theme toggle with system preference support
  • 📱 Fully responsive — dedicated mobile navigation and lesson sidebar
  • 🔍 SEO ready — metadata, sitemap, robots.txt, and Open Graph image
  • Smooth experience — page view transitions and smooth scrolling

🛠️ Tech Stack

Category

Technology

Framework

Next.js 15 (App Router, Turbopack)

Language

TypeScript

UI

React 18, Tailwind CSS 4, Radix UI, Lucide Icons

CMS

Sanity (next-sanity)

Video

next-video

Animation

GSAP, Lenis smooth scroll, next-view-transitions

Data fetching

SWR

Theming

next-themes

🚀 Getting Started

Prerequisites

  • Node.js 18.18 or later
  • npm, yarn, pnpm, or bun

Installation

  1. Clone the repository:

git clone https://github.com/rezk20/noshearlilafdal.git
cd noshearlilafdal

  1. Install dependencies:

npm install

  1. Start the development server:

npm run dev

Open http://localhost:3000 in your browser to see the result.

Note: The dev script also runs next-video sync -w to watch and process video assets.

Production

npm run build
npm run start

Linting

npm run lint

📂 Project Structure

├── app/
│ ├── page.tsx # Home page (hero, levels, contact)
│ ├── about/page.tsx # "About us" — team page
│ ├── layout.tsx # Root layout (RTL, nav, footer)
│ ├── [classSlug]/
│ │ └── [semesterSlug]/
│ │ └── [subjectSlug]/page.tsx # Video lesson pages
│ └── components/ # Hero, Sidebar, MenuNav, Footer, etc.
├── components/ui/ # Reusable UI components (button, dialog…)
├── lib/
│ ├── sanity.ts # Sanity client & data queries
│ └── utils.ts # Helpers (cn)
├── public/ # Static assets (avatars, fonts, images)
└── next.config.ts # Next.js configuration

🗃️ Content Model (Sanity)

Content is managed in a Sanity dataset with the following document types:

  • class — school grade level
  • semester — semester within a class
  • subject — subject within a semester
  • video — lesson video (name, slug, description, video file, approved flag)

Only approved videos are displayed on the site. Data is cached and revalidated every 10 minutes.

🤝 Contributing

Contributions are welcome! If you'd like to help — whether with code, content, or sign-language videos — please open an issue or submit a pull request.

📬 Contact

📄 License

© Disability Science Team, Zagazig University. All rights reserved.

Made with ❤️ by Razook

Tech Stack

Nextjs
Nextjs
Sanity
Sanity
Tailwind Css
Tailwind Css
Radix UI
Radix UI
Lenis
Lenis
Open Graph
Open Graph
Vercel
Vercel
GSAP
GSAP
Typescript
Typescript

Project Gallery

4 screenshots · click to view

Ready to explore?

Check out the live project or dive into the source code on GitHub