Skip to main content

Quickstart

Get all 4 SyncAD platforms running locally.

Prerequisites

ToolVersion
Node.js18+
pnpm8+
Flutter3.8+
Go1.21+
PostgreSQL15+
Docker24+

Web Platform (syncad monorepo)

# Clone and install
git clone https://github.com/Metaonus/syncad
cd syncad
pnpm install

# Start infrastructure (PostgreSQL, Redis)
docker compose up -d

# Push DB schema
pnpm --filter @syncad/db drizzle-kit push

# Start API
pnpm --filter api start:dev

# Start admin UIs (choose one or more)
pnpm --filter school-admin-ui start:dev # Next.js 14 / MUI
pnpm --filter super-admin start:dev # Next.js 16 / shadcn
pnpm --filter home start:dev # Marketing site

# API runs at http://localhost:3001
# school-admin-ui at http://localhost:3002
# super-admin at http://localhost:3003

Environment Variables (API)

DATABASE_URL=postgresql://postgres:password@localhost:5432/syncad_central
JWT_SECRET=your-256-bit-secret
AWS_ACCESS_KEY_ID=...
AWS_SECRET_ACCESS_KEY=...
AWS_REGION=ap-south-1
REDIS_URL=redis://localhost:6379

Parents App (Flutter)

cd /Users/dhilshad/Metaonus/syncad-parents

flutter pub get
flutter run

API Base: https://dev-api.metaonus.in/parent/*

Key dependencies: provider, dio, get_it, firebase_core, local_auth, shared_preferences.


Teachers App (Flutter)

cd /Users/dhilshad/Metaonus/syncad-teachers

flutter pub get
flutter run

API Base: https://dev-api.metaonus.in/teacher/*

Evaluation Mode: When evaluationMode=true at school level, all modules become read-only except Exam Management.

Key dependencies: provider, dio, get_it, firebase_messaging, syncfusion_flutter_pdfviewer.


Driver App (Flutter)

cd /Users/dhilshad/Metaonus/syncad-driver

flutter pub get
flutter run

API Base: https://dev-api.metaonus.in/driver/* Socket.IO: $baseUrl/bus-tracking

Key dependencies: provider, dio, socket_io_client (^3.0.0), geolocator (^13.0.0), flutter_map (OpenStreetMap).


SCS School Provisioning Service (Go)

cd /Users/dhilshad/Metaonus/syncad/apps/scs

go build -o scs ./cmd/server
./scs
# Runs at http://localhost:8080

Provisions per-school PostgreSQL database, Route53 subdomain, and Let's Encrypt SSL certificate when a new school is onboarded.