VibeForces is a web development competitions dashboard. Browse and join contests, practice coding challenges, earn bounties, and discuss in forums. The frontend is built with Vite + React + Tailwind, and a minimal Express backend serves mock data via REST APIs during development.
# Step 1: Clone the repository using the project's Git URL.
git clone https://github.com/sricursion/vibeforces.git
# Step 2: Navigate to the project directory.
cd vibeforces
# Step 3: Install the necessary dependencies.
npm i
# Step 4: Start both frontend and backend during development.
# Option A: run in two terminals
npm run dev # Terminal 1 (Vite @ http://localhost:8080)
npm run dev:api # Terminal 2 (API @ http://localhost:3001)
# Option B: run both together
npm run dev:allEdit a file directly in GitHub
- Navigate to the desired file(s).
- Click the "Edit" button (pencil icon) at the top right of the file view.
- Make your changes and commit the changes.
Use GitHub Codespaces
- Navigate to the main page of your repository.
- Click on the "Code" button (green button) near the top right.
- Select the "Codespaces" tab.
- Click on "New codespace" to launch a new Codespace environment.
- Edit files directly within the Codespace and commit and push your changes once you're done.
This project is built with:
- Vite
- TypeScript
- React
- shadcn-ui
- Tailwind CSS
- Express (Node.js), in-memory storage
- GET
/api/health— health check - GET
/api/contests— list contests - POST
/api/contests— create a contest - GET
/api/leaderboard/global— global leaderboard - GET
/api/leaderboard/weekly— weekly leaders - GET
/api/leaderboard/contest— current contest leaderboard - GET
/api/challenges— list challenges - GET
/api/bounties— list bounties - POST
/api/bounties/:id/applications— submit a bounty application - GET
/api/threads— list forum threads - POST
/api/threads— create a new thread
The frontend uses a Vite proxy so all requests to /api/* are forwarded to http://localhost:3001 during development.
- Contests page now fetches from the backend and supports creating a new mock contest.
- Leaderboard page pulls global/weekly/contest leaderboards from the backend.
- Index page shows featured contests and top performers from the backend.
- Challenges and Bounties pages fetch lists from the backend; Bounties supports mock application submission.
- Forums page fetches threads and allows creating a new thread.