A competitive gaming platform with ranking system, cosmetics shop, achievements, missions, and anti-cheat integration.
- Node.js 18+
- PostgreSQL 15+ (Neon recommended)
- npm or yarn
-
Clone & Install
git clone https://github.com/4tunexx/eclip.git cd eclip npm install -
Configure Environment
cp .env.example .env.local
Edit
.env.localwith:DATABASE_URL- PostgreSQL connectionJWT_SECRET- JWT signing key (generate:openssl rand -hex 32)SESSION_SECRET- Session secret
-
Run Migrations
npm run db:migrate
-
Start Development
npm run dev # App: http://localhost:9002 -
Create Admin Account
curl -X POST http://localhost:9002/api/admin/setup-admin # Email: admin@eclip.pro | Password: Admin123!
- β Authentication - Email/password, sessions, JWT, password reset
- β User Progression - Levels, XP, ESR ranking, coins
- β Achievements - 50+ achievements with unlock tracking
- β Missions - Daily/weekly challenges with rewards
- β Cosmetics Shop - Avatar frames, banners, badges, titles (coins-based)
- β Admin Panel - User management, coin grants, system stats
- β Anti-Cheat System - Event logging, violation tracking, AI-powered review
- β Notifications - System alerts for achievements, missions, level-ups
- β Leaderboards - Ranked by ESR and level
- β Forum System - Categories, threads, posts
src/
βββ app/
β βββ (app)/
β β βββ dashboard/ # User dashboard
β β βββ admin/ # Admin panel
β β βββ missions/ # Mission browser
β β βββ achievements/ # Achievement browser
β β βββ shop/ # Cosmetics shop
β βββ api/
β β βββ auth/ # Login, register, sessions
β β βββ missions/ # Mission API
β β βββ achievements/ # Achievement API
β β βββ admin/ # Admin endpoints
β β βββ admin/setup-admin/ # Initial admin setup
β βββ layout.tsx
β βββ page.tsx
βββ components/ # Reusable UI (shadcn/ui)
βββ hooks/ # React hooks
βββ lib/
β βββ auth.ts # JWT & session management
β βββ db/
β β βββ index.ts # Drizzle connection
β β βββ schema.ts # Database schema
β βββ config.ts
βββ ai/ # Genkit AI flows
drizzle/ # Database migrations
scripts/
βββ run-migrations.js # Apply migrations
βββ add-admin.js # Create admin (CLI)
User Management:
users- Accounts, progression, cosmeticssessions- JWT token sessionsuser_profiles- Extended profile data
Progression:
missions- Mission definitionsuser_mission_progress- Progress trackingachievements- Achievement definitionsuser_achievements- Unlock trackingbadges- Badge definitions
Shop & Economy:
cosmetics- Cosmetic itemsuser_inventory- Owned cosmetics
Social:
notifications- System notificationsforum_categories,forum_threads,forum_posts- Forum
Gameplay:
queue_tickets- Matchmaking queuematches- Match resultsmatch_players- Per-player match stats
Safety:
ac_events- Anti-cheat eventsbans- Player bans
Admin:
esr_thresholds- Rank tierslevel_thresholds- Level progressionrole_permissions- Permission system
Auth:
POST /api/auth/login- LoginPOST /api/auth/register- RegisterGET /api/auth/me- Current userPOST /api/auth/logout- Logout
Missions:
GET /api/missions- List missionsPOST /api/missions/:id/complete- Complete & reward
Achievements:
GET /api/achievements- List achievementsPOST /api/achievements/:id/unlock- Unlock
Shop:
GET /api/cosmetics- List cosmeticsPOST /api/cosmetics/:id/purchase- BuyPOST /api/cosmetics/:id/equip- Equip
Admin:
POST /api/admin/setup-admin- Create adminGET /api/admin/users- List usersPOST /api/admin/users/:id/coins- Grant/remove coinsGET /api/admin/stats- System stats
npm run dev # Dev server (Turbopack)
npm run build # Production build
npm run start # Run production
npm run lint # ESLint
npm run typecheck # TypeScript check
npm run db:migrate # Apply database migrations
npm run db:introspect # Sync schema from live DBRequired:
DATABASE_URL=postgresql://user:pass@host/db
JWT_SECRET=your-random-secret-key
SESSION_SECRET=another-random-secretOptional:
STEAM_API_KEY=your-steam-api-key
GCP_PROJECT_ID=your-gcp-project
GENKIT_API_KEY=your-genkit-key
EMAIL_USER=support@domain.com
EMAIL_PASSWORD=your-app-password- Push to GitHub
- Connect repo to Vercel
- Set environment variables
- Deploy (auto on push)
docker build -t eclip .
docker run -p 9002:9002 --env-file .env.local eclipnpm install && npm run build && npm run db:migrate && npm start| Issue | Fix |
|---|---|
| DB Connection | Check DATABASE_URL format |
| Admin Failed | Run /api/admin/setup-admin endpoint |
| Build Error | rm -rf .next && npm run build |
| Migrations Fail | npm run db:migrate manually |
- Passwords hashed with bcryptjs (12 rounds)
- JWT tokens (HS256)
- HttpOnly session cookies
- SQL injection protected (Drizzle ORM)
- CORS & CSP headers
- Rate limiting on auth endpoints
Copyright Β© 2025 Eclip. All rights reserved.
- Create feature branch
- Commit changes
- Open PR
Status: β Production Ready | v1.0.0 | December 2025