Logo Lanfrica

kemalabdi421-sys/ethiopian-teacher-rostering

Domaine:

education

Type de record:

software
Créateur:
kem
Hôte:
Project: ethiopian-teacher-rostering # Ethiopian Teacher Rostering System A modern, smart web application for managing Ethiopian teacher rosters with simple interface and powerful features. ## 🎯 Features - ✨ **Teacher Profile Management** - Add, edit, view, and delete teacher information - 🔍 **Smart Search & Filter** - Find teachers by name, subject, school, or region - 📸 **Profile Pictures** - Upload and manage teacher profile images - 📱 **Responsive Design** - Works seamlessly on desktop and mobile devices - 🔐 **Secure Authentication** - Built with Supabase for data security - 🚀 **Real-time Updates** - Instant data synchronization across sessions - 📊 **Teacher Statistics** - Overview of teachers by region, subject, and school ## 🛠️ Tech Stack - **Frontend:** React 18 + TypeScript + Vite - **UI Components:** shadcn/ui + Tailwind CSS - **Backend/Database:** Supabase (PostgreSQL) - **Authentication:** Supabase Auth - **File Storage:** Supabase Storage - **State Management:** React Query (TanStack Query) - **Forms:** React Hook Form + Zod Validation ## 📋 Quick Start ### Installation ```bash npm install # or bun install ``` ### Development ```bash npm run dev ``` The app will be available at `localhost` ### Build ```bash npm run build ``` ### Preview Production Build ```bash npm run preview ``` ## 🗄️ Database Schema ### Teachers Table ```sql CREATE TABLE teachers ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), name VARCHAR NOT NULL, phone_number VARCHAR, email VARCHAR UNIQUE NOT NULL, subjects TEXT[] NOT NULL DEFAULT '{}', school_name VARCHAR, region VARCHAR NOT NULL, qualifications TEXT, biography TEXT, profile_image_url VARCHAR, created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(), updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW() ); ``` ## 🏗️ Project Structure ``` src/ ├── components/ │ ├── ui/ # shadcn/ui components │ ├── teacher/ │ │ ├── TeacherList.tsx │ │ ├── TeacherForm.tsx │ │ ├── TeacherProfile.tsx │ │ ├── TeacherCard.tsx │ │ …

Languages

Licenses