Logo Lanfrica

Mark-Tamfu/sekele

Record type:

software
Creator:
Mar
Host:
streaming african music # Sekele A music streaming web application for discovering and supporting African artists. Built with Next.js 15, React 19, Prisma, and PostgreSQL. ## Features - **Auth** — Email/password sign-up with role selection (Artist/Listener), optional Google OAuth, password reset - **Free tier** — 3 lifetime song unlocks per listener (stream or download counts once) - **Premium** — Stripe Checkout subscriptions with regional pricing (USD/XAF), Mobile Money placeholder - **Music player** — Persistent bottom bar with play/pause, progress, volume - **Artist dashboard** — Profile, upload, track management, analytics, revenue share placeholders - **Listener dashboard** — Library, free tier indicator, subscription management - **Admin panel** — User/content management, platform metrics - **Storage** — S3 presigned URLs with local filesystem fallback ## Project Structure ``` sekele/ ├── apps/web/ # Next.js app (frontend + API routes) ├── packages/shared/ # Shared types and constants ├── .env.example # Environment variable template └── README.md ``` ## Prerequisites - Node.js 20+ - PostgreSQL database - npm ## Quick Start ### 1. Clone and install ```bash cd ~/Projects/sekele npm install ``` ### 2. Configure environment Copy the example env file and set your database URL: ```bash cp .env.example apps/web/.env.local # Edit apps/web/.env.local — at minimum set DATABASE_URL and NEXTAUTH_SECRET ``` Generate a secret for NextAuth: ```bash openssl rand -base64 32 ``` ### 3. Set up the database ```bash npm run db:migrate npm run db:seed ``` ### 4. Start development server ```bash npm run dev ``` Open localhost. ## Test Accounts After seeding, use these accounts (password: `password123`): | Role | Email | |----------|--------------------| | Admin | admin@sekele.app | | Artist | artist@sekele.app | | Listener | listener@sekele.app| ## Environment Variables See `.env.example` for the full list. Key variables: | Va …