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
Admin
Kurslar yaradır və müəllimləri təyin edir.
- 2
Müəllim
Dərslər qurur, canlı sessiyalar keçirir, davamiyyəti qeyd edir.
- 3
Tələbə
Qeydiyyatdan keçir, dərsləri izləyir, tapşırıqları təhvil verir.
- 4
Müəllim
İşləri qiymətləndirir; irəliləyiş hər iki paneldə yenilənir.
- 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.
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.