No description
- JavaScript 53.8%
- Dart 45.6%
- HTML 0.3%
- Dockerfile 0.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .forgejo/workflows | ||
| caddy | ||
| docker | ||
| docs | ||
| e2e | ||
| lib | ||
| scripts | ||
| server | ||
| test | ||
| web | ||
| .env.example | ||
| .gitignore | ||
| .metadata | ||
| analysis_options.yaml | ||
| pubspec.yaml | ||
| README.md | ||
SysAnalytic
Duolingo for System Analysis & Design
Geymifitsirovannoye prilozheniye dlya izucheniya osnov sistemnogo analiza i sistemnogo dizayna.
Live
| Service | URL |
|---|---|
| App | https://app.135.106.182.66.nip.io/ |
| Forgejo | https://forgejo.135.106.182.66.nip.io/ |
Features (MVP)
- Auth: Email/password registration and login (demo mode available)
- Skill Tree: Visual progression map with locked/unlocked units
- 4 Lesson Types: Drag-n-Drop, Choice, Find Error, Write Query
- Gamification: XP, crystals, lives, achievements
- Dark/Light Theme: Business-style design system
Tech Stack
- Flutter/Dart (Web, iOS, Android, macOS)
- Riverpod (State management)
- GoRouter (Navigation)
- SQLite (Local storage)
- Clean Architecture (Domain/Data/Presentation layers)
Getting Started
Prerequisites
- Flutter SDK 3.22+
- Dart SDK 3.12+
Setup
cp .env.example .env # Fill in your values
flutter pub get
flutter run -d chrome
Run Tests
flutter test
flutter test --coverage
Build for Web
flutter build web --release
CI/CD
CI/CD runs on Forgejo Actions (self-hosted runner on the server).
Workflow (.forgejo/workflows/deploy.yml):
- Install Flutter SDK
- Clone repo from Forgejo
flutter pub get+flutter testflutter build web --releasersyncdeploy to server
Trigger: push to main branch.
Secrets (stored in Forgejo repo settings):
SSH_PRIVATE_KEY— deploy key for server SSH access
Infrastructure:
- Forgejo 16 (code hosting + Actions)
- Forgejo Runner (Docker,
--network host) - Caddy 2 (reverse proxy + Let's Encrypt SSL)
- n8n (automation, optional)
Full deployment guide: docs/DEPLOY.md
Security
- JWT tokens stored in flutter_secure_storage
- SQL injection prevented via parameterized queries
- All secrets in environment variables (never in code)
- Security headers via Caddy (CSP, HSTS, X-Frame-Options)
- See docs/technical/security-analysis.md for full analysis
Project Structure
See docs/technical/architecture.md
Documentation
- Deployment Guide
- Technical Specification
- Architecture
- Security Analysis
- Test Strategy
- Gherkin Specs
- PlantUML Diagrams
- ADRs
License
Proprietary — All rights reserved.