SocialPlus je pokročilý systém pro správu a plánování příspěvků na sociální sítě. Tento backend poskytuje kompletní API pro vytváření, editaci, plánování a publikování obsahu napříč různými sociálními platformami s pokročilým monitorováním výkonu.
- Facebook - Kompletní podpora včetně více fotografií a metrik
- Twitter/X - Textové příspěvky
- Threads - Meta's Threads platforma
- Mastodon - Decentralizovaná sociální síť
- Bluesky - AT Protocol platforma s pokročilou kompresí obrázků
- TypeScript - Typově bezpečný jazyk pro JavaScript
- Fastify - Rychlý a efektivní webový framework
- Prisma ORM - Moderní ORM pro práci s databázemi (MySQL)
- Swagger UI - Interaktivní API dokumentace
- @fastify/swagger - OpenAPI 3.0 specifikace
- bcrypt - Hashování hesel
- @fastify/session - Session management
- @fastify/cookie - Cookie podpora
- @atproto/api - Bluesky AT Protocol
- axios - HTTP klient pro API volání
- oauth-1.0a - OAuth 1.0a autentizace
- form-data - Multipart form data
- @influxdata/influxdb-client - InfluxDB v2 time series databáze
- Pino - Rychlé a efektivní logování (vestavěné ve Fastify)
- node-cron - Plánování úloh
- sharp - Zpracování a komprese obrázků
- @fastify/multipart - Upload souborů
- Jest - Testovací framework
- supertest - HTTP testing
- tsx - TypeScript execution
- pino-pretty - Pretty logging pro development
- Node.js (doporučená verze LTS 18+)
- MySQL databáze
- InfluxDB v2 (pro monitoring výkonu)
git clone <URL_REPOZITÁŘE>
cd socialplus-fastify-backend
npm installZkopírujte .env.example na .env a nakonfigurujte:
# Obecné nastavení
NODE_ENV=development
SERVER_PORT=8080
# MySQL databáze
DATABASE_URL="mysql://user:password@localhost:3306/socialplus"
SHADOW_DATABASE_URL="mysql://user:password@localhost:3306/socialplus_shadow"
# InfluxDB monitoring (volitelné)
INFLUXDB_URL=http://localhost:8086
INFLUXDB_TOKEN=your-influxdb-token
INFLUXDB_ORG=socialplusorg
INFLUXDB_BUCKET=socialplus
# File uploads
UPLOADS_DIR=./uploads
MAX_FILE_SIZE=5000000
# Bezpečnost
SALT_ROUNDS=10
SESSION_SECRET=your-32-character-session-secret
# Scheduler
SCHEDULER_CHECK_INTERVAL=1# Generování Prisma klienta
npx prisma generate
# Spuštění migrací
npx prisma migrate dev
# (Volitelně) Seed data
npx prisma db seednpm run devnpm run build
npm startPo spuštění je dostupná na: http://localhost:8080/docs
user.ts- Správa uživatelů, autentizacemanager.ts- Správa sociálních sítí a oprávněníapi.ts- Vytváření a správa příspěvkůscheduler.ts- Plánování a správa časovaných příspěvkůmonitor.ts- Monitoring výkonu a analýzy
ISocialNetworkProvider.ts- Základní interface pro všechny providerySocialNetworkProviderFactory.ts- Factory pattern pro vytváření providerůFacebookProvider.ts- Facebook/Meta integraceTwitterProvider.ts- Twitter/X APIThreadsProvider.ts- Meta ThreadsMastodonProvider.ts- Mastodon decentralizovaná síťBlueskyProvider.ts- Bluesky AT Protocol
ThreadsTokenManager.ts- Automatické obnovování Threads tokenůFacebookTokenManager.ts- Správa Facebook access tokenů
PostScheduler.ts- Hlavní plánovač pro automatické odesíláníPerformanceMonitorService.ts- Monitoring engagement metrikInfluxDBService.ts- Time series databáze pro metriky
MonitoringConfig.ts- Konfigurace monitorováníhelpers.ts- Utility funkce
- Automatický scheduler s konfigurovatelným intervalem
- Podpora pro různé časy publikování na různých sítích
- Batch processing pro efektivní zpracování
- Automatické sledování metrik každou 1-12 hodin (dle API limitů)
- Manuální monitoring přes API endpoint
- Time series analýza v InfluxDB
- 7-denní okno sledování pro nové příspěvky
- Automatické obnovování pro Threads
- Long-lived tokens pro Facebook
- Secure storage v databázi
- Sharp pro optimalizaci obrázků
- Komprese pro různé sociální sítě
- Multi-format podpora
- Users - Uživatelské účty s authentication
- Networks - Připojené sociální sítě s tokeny
- Posts - Vytvořené příspěvky s obsahem
- Attachments - Multimédia připojená k příspěvkům
- PostedContent - Publikované příspěvky s metriky
- Contents - Obsah příspěvků pro různé sítě
- NetworkTokens - Bezpečné uložení API tokenů
# Spuštění všech testů
npm test
# Coverage report
npm run test:coverageProjekt obsahuje kompletní test suite pro:
- API endpointy
- Social media providery
- Token managery
- Scheduler funkcionalitu
- Performance monitoring
src/
├── config/ # Konfigurace aplikace
├── routes/ # API endpoints
├── social/ # Social media integrace
├── types/ # TypeScript definice
└── generated/ # Prisma klient
npm run build # TypeScript kompilace
npm run dev # Development server
npm run test # Testování
npm start # Production server/api/user/*- Správa uživatelů/api/manager/*- Správa sociálních sítí/api/posts/*- CRUD operace s příspěvky/api/scheduler/*- Plánování příspěvků/api/monitor/*- Performance analytics
Kompletní dokumentace dostupná na /docs po spuštění serveru.