Synaro - Web - Timiș - Lucrari 2026 Nationala

Informatii generale

Descriere

Synaro este o platformă web pentru developeri care acoperă ciclul de la idee la proiect rulabil: generare din limbaj natural, medii Docker izolate, workspace (editor, terminal, preview), chat AI pe codebase și agenți autonomi pentru automatizare. :rocket:

Pe lângă UI, platforma expune API public, SDK TypeScript (@synaro/sdk) și MCP, astfel încât proiectele și agenții pot fi controlați și din unelte externe (CLI, scripturi, Cursor / LLM-uri).

Tehnologii

Feature-uri ale platformei

  • :sparkles: Proiecte din limbaj natural: descrii ce vrei să construiești; Synaro generează structură, config și cod de start. Runtime-uri suportate: Node.js, Python, Go, Nginx, Ubuntu sau detectare automată.
  • :inbox_tray: Import proiect: clone din GitHub sau upload folder local, apoi lucrul continuă în același workspace.
  • :spouting_whale: Medii Docker per proiect: fiecare proiect are container propriu — provisionare, start/stop, preview live (proxy local în dezvoltare; subdomain prin Traefik în producție).
  • :desktop_computer: Workspace: file tree, editor (Monaco), chat AI pe fișiere, terminal în container (xterm.js), preview al aplicației și download arhivă.
  • :brain: Task-uri AI pe proiect: flux clarificare → ANALYZING → GENERATING → APPLYING. Modificările pe repo sunt validate și aplicate prin ai-orchestration-service (Kimi / Moonshot).
  • :busts_in_silhouette: Colaborare: invitații pe proiect cu token și dată de expirare.
  • :robot: Agenți: agenții nu depind de un container de proiect. Se creează și gestionează din /agents (nume, system prompt, tool-uri, model, cron, MCP, memorie, enable/disable). Pot rula la cerere sau pe schedule și lasă istoric de run-uri cu pașii ReAct vizibili în UI.
    • :magnifying_glass_tilted_left: Tool-uri built-in:
      • web_search — căutare web (Brave Search)
      • http_get / http_post — cereri HTTP pe URL-uri publice (cu protecție SSRF)
      • list_files / read_file / write_file / delete_file — workspace de fișiere al agentului
      • remember / recall — memorie key/value pe agent
      • list_projects / get_project / start_project / stop_project — control proiecte Synaro
      • run_agent — delegare către un alt agent
      • tool-uri din servere MCP configurate pe agent
      • finish — marchează răspunsul final
    • :counterclockwise_arrows_button: Ciclu run (ReAct): trigger din UI / API / SDK / CLI / cron → PENDING → RUNNING (gândire → tool call → observation → pas următor) → DONE / FAILED / CANCELLED. Dacă un server MCP cere autentificare, run-ul trece în NEEDS_INPUT, utilizatorul trimite credențialele și execuția continuă.
    • :bar_chart: Vizibilitate: timeline pe /agents/{id}/runs/{runId}, widget last run pe dashboard, indicatori în header pentru run-uri active; email opțional la finalizare.
  • :control_knobs: Dashboard personalizabil: layout pe grid (react-grid-layout), drag-and-drop, widget-uri (KPI, showcase proiecte/agenți, activity, shortcuts, last run, API keys), salvat per utilizator.
  • :locked: Autentificare și cont: email/parolă, OAuth Google/GitHub (NextAuth), verificare email, reset parolă (Resend), settings (profil, securitate, sesiuni) și generare chei API.
  • :magnifying_glass_tilted_right: Căutare globală pe proiecte, agenți și activitate din shell-ul aplicației.
  • :speech_balloon: Voce: input STT și output TTS (ElevenLabs, cu fallback browser).
  • :globe_with_meridians: API public: autentificare cu chei sk_live_…, documentat OpenAPI; operații pe proiecte, task-uri AI, agenți, run-uri, memory; ~120 req/min/cheie.

Internationalizare și accesibilitate

  • :first_quarter_moon: Mod Light / Dark / System
  • :globe_showing_europe_africa: Interfață internaționalizată. Limbi disponibile: Română și Engleză
  • :wheelchair_symbol: Design accesibil; teste a11y cu Playwright și axe-core

Ecosistem de dezvoltare

Pentru a facilita integrarea cu platforma:

  • :package: @synaro/sdk: SDK TypeScript pentru Node.js (≥ 18) — client tipizat pentru /api/v1 (proiecte, task-uri, agenți, run-uri, memory) și CLI synaro (npx synaro me, deploy, agents run, etc.)
  • :robot: MCP Server Synaro: tool-uri pentru LLM-uri / Cursor — create proiect, deploy, logs, agenți, status
  • :electric_plug: Agenți ca clienți MCP: pe lângă MCP-ul platformei, fiecare agent poate avea mcpServers proprii; agent-runner încarcă tool-urile la runtime (inclusiv fluxul NEEDS_INPUT pentru auth)
  • :books: Documentație: synaro.tech/documentation (EN + RO) — overview, agenți, API public, SDK

Tehnologii

Frontend

Backend

  • :electric_plug: Fastify + Zod: microservicii tipizate
    • project-service — lifecycle / metadata proiecte
    • environment-service — Docker, fișiere, terminal WebSocket, git
    • ai-orchestration-service — task-uri AI pe codebase
    • execution-manager — start/stop proces app, loguri
    • agent-service — CRUD agenți, trigger, memory, webhooks
    • agent-runner — buclă ReAct, catalog tool-uri, MCP runtime, scheduler cron
    • mcp-server — bridge MCP → API Synaro
  • :file_cabinet: Prisma: ORM
  • :elephant: PostgreSQL: bază de date (utilizatori, proiecte, agenți, run-uri)
  • :spouting_whale: Docker: runtime izolat per proiect
  • :locked_with_key: NextAuth.js: autentificare (sesiuni, OAuth, adapter Prisma)

Servicii third-party

Develop, Test, Deploy! :rocket:

Unit tests cu Jest :test_tube: (app) și Vitest (SDK); End-to-End cu Playwright :performing_arts:; a11y cu axe-core.

CI prin GitHub Actions :counterclockwise_arrows_button: (lint, Jest, SDK build/test, Playwright, a11y), cu Docker :whale: pentru Postgres și microservicii.

Deploy pe VPS cu Docker Compose + Traefik, după trecerea testelor. :white_check_mark:

Cerinte sistem

Pentru utilizarea platformei:

  • Browser modern (Google Chrome, Mozilla Firefox, Safari, etc.)
  • Conexiune la internet

Pentru dezvoltare:

  • macOS, Linux sau Windows, cu cel puțin 8GB RAM (recomandat 16GB)
  • Node.js 20.x sau mai nou
  • Docker
  • Orice editor de text (VS Code, Cursor, IntelliJ IDEA, etc.)

Realizatori

Cristi Stiegelbauer

  • Scoala: Liceul Teoretic “Grigore Moisil”
  • Clasa: 10
  • Judet: Timiș
  • Oras: Ghiroda

Mihai Gorunescu

  • Scoala: Liceul Teoretic “Grigore Moisil”
  • Clasa: 11
  • Judet: Timiș
  • Oras: Dumbravita

Screenshots