• 01 - Overview
    • 02 - User Guide
    • 03 - Technical Guide
    • 04 - Operations
    • App
      • Get application hello response
        GET
    • Users
      • Kullanıcı profili
        GET
      • Update current user profile
        PATCH
      • Opsiyonel kimlik doğrulama
        GET
      • Tüm kullanıcıları listele
        GET
      • Get user by id (Admin)
        GET
      • Kullanıcı sil
        DELETE
      • Update user profile by id (Admin)
        PATCH
      • Update user email by id (Admin)
        PATCH
      • Update user role by id (Superadmin)
        PATCH
    • Auth
      • Token yenileme
        POST
      • Kullanıcı çıkışı
        POST
      • Request OTP (Login or Register)
        POST
      • Verify OTP (Login or Register)
        POST
      • Complete registration
        POST
      • Get registration status
        GET
    • Courses
      • Create a new course (Admin only)
        POST
      • Get all courses
        GET
      • Duplicate an existing course
        POST
      • Kurs detayını görüntüle
        GET
      • Update an existing course (Admin only)
        PATCH
      • Delete a course (Admin only)
        DELETE
    • Storage
      • Upload a file to storage
    • Proficiency Tests
      • Create a new proficiency test
      • List available proficiency tests
      • Duplicate an existing proficiency test
      • Update an existing proficiency test
      • Get test details
      • Delete proficiency test (Admin)
      • Get available target languages
      • Get detailed test result (Admin)
      • Delete test result (Admin)
      • Get all test results (Admin)
      • Get test results for a specific user (Admin)
      • Get current user results
      • Get detailed test result
      • Check if user has completed the test
      • Submit a proficiency test
    • Settings
      • Get setting by key
      • Create or update a setting (Admin)
    • Education Materials
      • Create a new education material with multiple PDFs and videos
      • List all education materials with optional locale filtering
      • Assign an education material to one or more users (Admin)
      • Get assigned education materials for current user
      • Get assigned education materials for a specific user (Admin)
      • Get detailed information about a specific education material
      • Update education material details and/or add new PDFs
      • Delete an education material
    • Contact
      • Submit a contact request
      • Get contact requests (Admin)
      • Reply to a contact request (Admin)
      • Delete a contact request (Admin)
      • Update contact status (Admin)
    • Admin Dashboard
      • Get aggregated dashboard metrics for admin panel
    • Schemas
      • UserDocument
      • BaseResponseDto
      • RequestOtpDto
      • VerifyOtpDto
      • HelloResponseDto
      • AuthResponseDto
      • UserProfileDto
      • UserProfileResponseDto
      • UserResponseDto
      • UpdateMeProfileDto
      • OptionalAuthResponseDto
      • PaginationDto
      • AdminUpdateUserProfileDto
      • AdminUpdateUserEmailDto
      • OtpResponseDto
      • UpdateUserRoleDto
      • DeleteResponseDto
      • RefreshTokenDto
      • LogoutResponseDto
      • RequestOtpUnifiedDto
      • VerifyOtpUnifiedDto
      • CompleteRegistrationResponseDto
      • CompleteRegistrationDto
      • RegistrationStatusResponseDto
      • CourseResponseDto
      • UploadFileResponseDto
      • LevelRangeResponseDto
      • ProficiencyOptionResponseDto
      • ProficiencyQuestionResponseDto
      • ProficiencyTestDetailResponseDto
      • OptionDto
      • QuestionDto
      • LevelRangeDto
      • CreateProficiencyTestDto
      • UpdateProficiencyTestDto
      • ProficiencyTestListResponseDto
      • TargetLanguagesResponseDto
      • UserTestAnswerResponseDto
      • UserTestResultUserSummaryDto
      • UserTestResultTestSummaryDto
      • UserTestResultResponseDto
      • DeleteUserTestResultResponseDto
      • UserTestResultListResponseDto
      • UserTestStatusSummaryDto
      • UserTestStatusResponseDto
      • DeleteProficiencyTestResponseDto
      • AnswerDto
      • SubmitTestDto
      • SettingValueResponseDto
      • SettingResponseDto
      • UpsertSettingDto
      • MaterialPdfResponseDto
      • MaterialVideoResponseDto
      • EducationMaterialResponseDto
      • CreateEducationMaterialDto
      • AssignEducationMaterialSummaryDto
      • AssignEducationMaterialDto
      • AssignedByResponseDto
      • AssignedEducationMaterialResponseDto
      • MyAssignedEducationMaterialsResponseDto
      • UserSummaryForAssignmentsDto
      • AdminUserAssignedMaterialsResponseDto
      • UpdateEducationMaterialDto
      • DeleteEducationMaterialResponseDto
      • ContactResponseDto
      • CreateContactRequestDto
      • ReplyContactRequestDto
      • UpdateContactStatusRequestDto
      • DashboardUsersOverviewDto
      • DashboardCoursesOverviewDto
      • DashboardTestsOverviewDto
      • DashboardContactsOverviewDto
      • DashboardMaterialsOverviewDto
      • DashboardOverviewDto
      • DashboardTrendDto
      • DashboardDistributionItemDto
      • DashboardLevelDistributionItemDto
      • DashboardLanguageDistributionItemDto
      • DashboardDistributionsDto
      • DashboardRecentContactDto
      • DashboardRecentResultDto
      • DashboardRecentActivityDto
      • AdminDashboardStatsResponseDto

    01 - Overview

    1) Kapsam#

    Bu doküman, aşağıdaki iki projenin kod temelli analiz özetidir:
    englishcamplanding: Next.js landing + kullanıcı paneli + admin paneli
    englishcampbackend: NestJS backend API

    2) Proje Özeti#

    ProjeTeknolojiAna SorumlulukKanıt Dosyalar
    englishcamplandingNext.js 16, React 19, TypeScript, TanStack Query, ZodÇok dilli landing, OTP tabanlı giriş, kullanıcı dashboard, admin UIenglishcamplanding/package.json, englishcamplanding/app/[locale]/layout.tsx, englishcamplanding/api/services/*.ts
    englishcampbackendNestJS 11, Mongoose, JWT, Swagger, MailerAuth, kullanıcı yönetimi, kurslar, placement test, eğitim materyali, contact, admin dashboardenglishcampbackend/src/app/app.module.ts, englishcampbackend/src/main.ts, englishcampbackend/src/*/controllers/*.ts

    3) Yüksek Seviye Mimari#

    4) Backend Modül Haritası (Özet)#

    ModülBase PathAmaç
    App/Basit root endpoint
    Auth/authOTP, refresh, logout, registration completion/status
    Users/me, /users, /admin/usersProfil, kullanıcı liste/detay, rol, silme
    Courses/coursesKurs CRUD + duplicate
    Proficiency Tests/proficiency-testsSınav CRUD, submit, sonuçlar, admin sonuç ekranları
    Education Materials/education-materialsMateryal CRUD, kullanıcı atama, kullanıcı materyalleri
    Contact/contactİletişim formu + admin yanıt/iş akışı
    Settings/settingsAnahtar-değer ayarları (örn. landing video URL)
    Admin Dashboard/admin/dashboardToplu istatistik/dağılım/trend verileri
    Storage/storageDosya yükleme

    5) Rol Matrisi (Özet)#

    RolAPI Yetki ÖzetiUI Yetki ÖzetiKanıt
    PublicPublic endpoint'lere erişim (/auth/otp/*, kurs/sınav liste/detay, contact create)Landing, kurslar, login/otp sayfalarıenglishcampbackend/src/auth/auth.controller.ts, englishcampbackend/src/courses/controllers/courses.controller.ts, englishcampbackend/src/common/controllers/contact.controller.ts
    UserJWT gereken user endpoint'ler (/me, /me/profile, sınav submit/sonuç, my-materials)Dashboard ve profil düzenlemeenglishcampbackend/src/users/user.controller.ts, englishcampbackend/src/proficiency-tests/controllers/proficiency-tests.controller.ts, englishcamplanding/app/[locale]/dashboard/page.tsx
    AdminAdminGuard endpoint'leri (kullanıcı listesi, materyal admin işlemleri, contact admin, dashboard)Admin panel menüleri ve sayfalarıenglishcampbackend/src/auth/guards/admin.guard.ts, englishcamplanding/app/[locale]/admin/layout.tsx
    SuperadminAdmin + /users/:id/roleAdmin UI'da rol değişimi açılırenglishcampbackend/src/users/user.controller.ts, englishcampbackend/src/auth/guards/superadmin.guard.ts, englishcamplanding/app/[locale]/admin/users/page.tsx

    6) Veri Modeli (Özet)#

    VarlıkAmaçKanıt
    UserKimlik, rol ve profil bilgisienglishcampbackend/src/users/schemas/user.schema.ts
    CourseKurs verisi ve medya alanlarıenglishcampbackend/src/courses/schemas/course.schema.ts
    ProficiencyTestTest tanımı ve sorularenglishcampbackend/src/proficiency-tests/schemas/proficiency-test.schema.ts
    UserTestResultKullanıcı test sonuçlarıenglishcampbackend/src/proficiency-tests/schemas/user-test-result.schema.ts
    EducationMaterial + UserEducationMaterialAssignmentMateryal ve kullanıcı atama ilişkisienglishcampbackend/src/education-materials/schemas/education-material.schema.ts, englishcampbackend/src/education-materials/schemas/user-education-material-assignment.schema.ts
    Contactİletişim talepleri ve admin yanıtlarıenglishcampbackend/src/common/schemas/contact.schema.ts
    SettingUygulama ayarları (key/value)englishcampbackend/src/settings/schemas/setting.schema.ts
    Detaylı ER diyagram ve tam model listesi için: docs/03-technical-guide.md

    7) Env Değişkenleri (Özet)#

    DeğişkenProjeAmaçVarsayılan/FallbackKanıt
    NEXT_PUBLIC_API_URLlandingAPI base URLhttp://localhost:3000englishcamplanding/api/http/axios.ts
    NEXT_PUBLIC_SITE_URLlandingCanonical/sitemap/robots base URLhttps://englishcamplanding.vercel.appenglishcamplanding/lib/seo.ts, englishcamplanding/app/sitemap.ts
    NEXT_PUBLIC_UMAMI_WEBSITE_IDlandingUmami analytics site idKod içi default mevcutenglishcamplanding/components/analytics/analytics-loader.tsx
    NEXT_PUBLIC_GA_MEASUREMENT_IDlandingGoogle Analytics ölçüm idYoksa GA script render edilmezenglishcamplanding/components/analytics/google-analytics.tsx
    MONGODB_URIbackendMongoDB bağlantısımongodb://localhost:27017/englishcampenglishcampbackend/src/config/mongodb.config.ts
    JWT_SECRETbackendJWT imzalamayour-secret-key-change-in-productionenglishcampbackend/src/config/jwt.config.ts
    MAIL_*backendSMTP gönderim ayarlarıMAIL_PORT için 587 fallbackenglishcampbackend/src/config/mail.config.ts
    R2_*backendCloudflare R2 erişim ayarlarıFallback yokenglishcampbackend/src/config/r2.config.ts
    Detaylı tam env tablosu için: docs/03-technical-guide.md

    8) API Endpointleri (Özet)#

    AlanEndpoint SayısıNot
    App1Root health benzeri basit cevap
    Auth6OTP + registration completion akışı
    Users9Profil + admin kullanıcı yönetimi
    Courses6Kurs CRUD + duplicate
    Proficiency Tests15Sınav yaşam döngüsü + admin sonuç
    Education Materials8Materyal CRUD + atama
    Contact5Form + admin reply/status
    Settings2key/value ayarı
    Admin Dashboard1Aggregated metrikler
    Storage1Dosya upload
    Detaylı tam endpoint tablosu için: docs/03-technical-guide.md

    9) Rate Limit Özeti#

    Kural/EndpointLimitPencereKanıt
    Global default1201 dakikaenglishcampbackend/src/common/constants/rate-limit.constants.ts, englishcampbackend/src/app/app.module.ts
    POST /auth/refresh301 dakikaenglishcampbackend/src/auth/auth.controller.ts
    POST /auth/otp/request55 dakikaenglishcampbackend/src/auth/auth.controller.ts
    POST /auth/otp/verify125 dakikaenglishcampbackend/src/auth/auth.controller.ts
    POST /contact61 saatenglishcampbackend/src/common/controllers/contact.controller.ts
    POST /storage/upload2010 dakikaenglishcampbackend/src/storage/storage.controller.ts
    Detaylı rate-limit tablosu için: docs/03-technical-guide.md, docs/04-operations.md

    10) Operasyon Snapshot (Kullanıcı Beyanı)#

    AlanDeğer
    OrkestrasyonCoolify
    SunucuHostinger KVM 1
    Coolify ProjectEnglishCamp
    ApplicationsBackend, Landing
    Backend URLhttps://api.englishcamper.com
    Landing URLhttps://englishcamper.com
    Ek servisBentoPDF (https://pdf.englishcamper.com)
    DNSCloudflare * için A kaydı
    Deploy tetiklemeGitHub main branch’e yeni commit geldiğinde deploy
    Modified at 2026-02-14 10:35:33
    Next
    02 - User Guide
    Built with