Bütün layihələr

Hobbi2025

DevCode Academy LMS

Proqramlaşdırma məktəbləri üçün rollara əsaslanan təhsil idarəetmə sistemi.

Rollar
Admin · Müəllim · Tələbə
Cədvəllər
17
Səhifələr
30+
Miqrasiyalar
Drizzle Kit

01Ümumi baxış

DevCode Academy proqramlaşdırma məktəbini başdan sona idarə edir: kurslar və dərslər, davamiyyətli canlı dərs sessiyaları, qiymətləndirilən tapşırıqlar, sertifikatların ictimai yoxlanışı və bloq.

Hər rolun öz paneli və naviqasiyası var, hamısı müştəri və serverin paylaşdığı vahid tipli sxemə əsaslanır.

02Arxitektura

React tək səhifəli tətbiqi Express REST API ilə əlaqə saxlayır. Verilənlər bazası sxemi paylaşılan modulda bir dəfə təyin olunur və sorğular, miqrasiyalar və sorğu validasiyası üçün təkrar istifadə edilir.

Müştəri

Admin

Kurslar, müəllimlər, tələbələr

Müəllim

Dərslər, qiymətləndirmə, davamiyyət

Tələbə

Kurslar, tapşırıqlar, qiymətlər

İctimai

Əsas səhifə, bloq, sertifikat yoxlanışı

Müştəri icra mühiti

Wouter

Marşrutlaşdırma

TanStack Query

Server vəziyyəti keşi

React Hook Form + Zod

Validasiyalı formalar

API

REST marşrutları

Express · TypeScript ESM

Autentifikasiya

Sessiyalar + rol yoxlamaları

Saxlama qatı

Drizzle üzərində repozitoriya

Paylaşılan

shared/schema.ts

Drizzle cədvəlləri + drizzle-zod sxemləri

Data

PostgreSQL

Neon serverless

Sessiya anbarı

connect-pg-simple

03Komponentlər

Kurs domeni

Məzmun və qeydiyyat

  • Kurslar → dərslər → materiallar və dərs tapşırıqları, həmçinin öz qeydiyyatları olan ayrıca oflayn kurslar.
  • Dərs irəliləyişi hər tələbə üçün izlənilir və panellərdə ümumiləşdirilir.

Canlı sessiyalar və davamiyyət

Sinif əməliyyatları

  • Müəllim dərs sessiyası açır; qlobal aktiv sessiya paneli onu bütün səhifələrdə izləyir.
  • Davamiyyət hər sessiya üçün qeydə alınır və tələbələrə görünür.

Tapşırıqlar və qiymətləndirmə

Öyrənmə dövrü

  • Tələbələr iş təhvil verir, müəllimlər rəylə qiymətləndirir, qiymətlər tələbənin qeydinə toplanır.

Sertifikatlar

Platformadan kənarda etibar

  • Sertifikatlar kurs bitdikdə verilir və sertifikat kodu olan hər kəs tərəfindən ictimai yoxlanıla bilər.

04Necə işləyir

  1. 1

    Admin

    Kurslar yaradır və müəllimləri təyin edir.

  2. 2

    Müəllim

    Dərslər qurur, canlı sessiyalar keçirir, davamiyyəti qeyd edir.

  3. 3

    Tələbə

    Qeydiyyatdan keçir, dərsləri izləyir, tapşırıqları təhvil verir.

  4. 4

    Müəllim

    İşləri qiymətləndirir; irəliləyiş hər iki paneldə yenilənir.

  5. 5

    Platforma

    Kurs bitdikdə yoxlanıla bilən sertifikat verir.

05Texniki təhlil

Bir sxem, üç istifadə

Cədvəllər Drizzle ilə bir dəfə təyin olunur. Eyni təriflər SQL miqrasiyaları, serverdə tipli sorğular və sorğu gövdələrini və müştəri formalarını yoxlayan Zod sxemləri yaradır - beləliklə API müqaviləsi verilənlər bazasından ayrıla bilmir.

shared/schema.ts (excerpt)ts
export const courses = pgTable("courses", {
  id: serial("id").primaryKey(),
  title: varchar("title", { length: 255 }).notNull(),
  level: varchar("level", { enum: ["beginner", "intermediate", "advanced"] }).notNull(),
  instructorId: varchar("instructor_id").notNull(),
  isActive: boolean("is_active").default(true),
  enrollmentCount: integer("enrollment_count").default(0),
  createdAt: timestamp("created_at").defaultNow(),
  updatedAt: timestamp("updated_at").defaultNow(),
});

// Reused by the API (request validation) and the client (forms)
export const insertCourseSchema = createInsertSchema(courses).omit({
  id: true,
  createdAt: true,
  updatedAt: true,
});
export type InsertCourse = z.infer<typeof insertCourseSchema>;

06Dizayn qərarları

Marşrutlarla verilənlər bazası arasında saxlama interfeysi

Marşrutlar birbaşa Drizzle-dan deyil, saxlama abstraksiyasından asılıdır - bu, handler-ləri sadə, data qatını isə test edilə bilən saxlayır.

Server vəziyyəti TanStack Query-də

Qlobal müştəri store-u yoxdur: server datası sorğu açarları ilə keşlənir və yenilənir, UI vəziyyəti lokal qalır.

Sessiyalar PostgreSQL-də

Sessiyalar eyni verilənlər bazasında saxlanılır, ona görə tətbiq ayrıca sessiya servisi olmadan üfüqi miqyaslana bilir.

07Texnologiyalar

Frontend
React 18TypeScriptViteTailwind CSSshadcn/uiTanStack QueryWouter
Backend
Node.jsExpressPassportexpress-session
Data
PostgreSQL (Neon)Drizzle ORMdrizzle-zod

08Növbəti addımlar

  • Kod tapşırıqları üçün avtomatik qiymətləndirmə.
  • Canlı sessiyalar üçün real vaxt bildirişləri.

Növbəti case study

Crypto Trading Bot

Canlı panel, backtest və Telegram idarəsi olan çox indikatorlu ticarət mühərriki.