Logo Lanfrica

Sickboi-deon/liberia-talent-quest

Domaine:

digital infrastructure

Type de record:

software
Créateur:
Sic
Hôte:
# Liberia Talent Quest Liberia's premier talent competition platform. Full-stack Node.js + PostgreSQL system managing public registration (solo and group entries), audition review, live rounds, real-time voting, leaderboard, media gallery, and season finale placements — with a 9-role staff RBAC system and real-time SSE push. --- ## Tech Stack | Layer | Technology | |---|---| | Backend | Node.js 18+ / Express | | Database | PostgreSQL 14+ | | Auth | JWT (HttpOnly cookie `ltq_session`, 7-day TTL) | | Frontend | Plain HTML / CSS / JavaScript (no build step) | | Real-time | Server-Sent Events (SSE) — leaderboard live updates | | File uploads | Multer (in-memory) → Cloudinary if configured, else local disk outside the web root in `~/ltq-uploads/` | | Email | Nodemailer (SMTP, configurable via Superuser dashboard or `.env`) | | WhatsApp | Meta Cloud API (optional, configurable via Superuser dashboard or `.env`) | | Media storage | Cloudinary (optional, configurable via Superuser dashboard or `.env`) — falls back to local disk automatically when unset | --- ## Quick Start (local development) ```bash # 1. Install dependencies npm install # 2. Create your .env file cp .env.example .env # Edit .env — set DATABASE_URL, JWT_SECRET, and SUPERUSER_* at minimum # 3. Create the PostgreSQL database and user createdb ltq # or: psql -c "CREATE DATABASE ltq;" # 4. Apply the schema (single source of truth — all tables, columns, # constraints, and indexes) + seed default categories/criteria + superuser npm run db:init # 5. Run one-time data migrations (legacy category remap + contestant numbering backfill) npm run db:migrate # 6. Start the server npm start # Server runs on localhost ``` Log in at `localhost` with the `SUPERUSER_EMAIL` / `SUPERUSER_PASSWORD` you set in `.env`. **Change the password immediately on first login.** ### (Optional) Load test data / default public content ```bash npm run db:public # About-page team pro …