Click here to learn more about the project.
๐ Table of Contents
- ๐ Free & Open-Source โ MIT licensed and community-driven
- ๐ ๏ธ Fully Self-Hostable โ Complete control over your data and deployment
- ๐ Multi-Platform โ Web dashboard and Discord integration
- ๐งฑ Modular Architecture โ Easy to customize and extend
- ๐ฎ Gamify Anything โ From study groups to corporate teams
- ๐งโ๐คโ๐ง Built for Teams & Communities โ Role-based collaboration baked in
- ๐ฏ Event Creation โ Define your own events, tasks, and currency system
- ๐ฅ Role-Based Permissions โ Owners, Admins, Moderators, Members
- โ Task Management โ Admins create tasks, moderators verify them
- ๐ Reward Store โ Members redeem points for real or virtual rewards
- ๐ฅ๏ธ Web Dashboard โ Full-featured dashboard for managing events
- ๐ค Discord Bot โ Seamless interaction with Discord for members
Directory | Description | Technology |
---|---|---|
client/ |
Frontend UI built with React | React, Tailwind CSS |
server/ |
RESTful API backend | Node.js, Express |
bot/ |
Discord companion bot | Discord.js |
Database |
Stores events, users, tasks, and rewards | MongoDB |
client/
โโ public/
โ โโ vite.svg
โโ src/
โ โโ components/
โ โ โโ Footer.jsx
โ โ โโ Home.jsx
โ โ โโ Navbar.jsx
โ โ โโ ScrollToTop.jsx
โ โโ Context/
โ โ โโ AuthContext.jsx
โ โโ pages/
โ โ โโ About.jsx
โ โ โโ AuthForms.jsx
โ โ โโ Contact.jsx
โ โ โโ Dashboard.jsx
โ โ โโ Profile.jsx
โ โโ routes/
โ โ โโ ProtectedRoute.jsx
โ โโ App.jsx
โ โโ index.css
โ โโ main.jsx
โโ Additional Documentation
server/
โโ config/
โ โโ db.js
โโ controllers/
โ โโ authController.js
โ โโ userController.js
โโ middlewares/
โ โโ authMiddleware.js
โโ models/
โ โโ User.js
โโ routes/
โ โโ authRoutes.js
โ โโ userRoutes.js
โโ Additional Documentation
- Node.js (v16+)
- MongoDB (Atlas or local)
- A Discord Bot Token (Get one here)
git clone https://github.com/gollabharath/gamify.git
cd gamify
cd client && npm install
cd ../server && npm install
cd ../bot && npm install
Create .env
files in client/
, server/
, and bot/
directories.
PORT=5000
MONGO_URI=your_mongodb_uri
JWT_SECRET=your_jwt_secret
FRONTEND_URL=your_frontend_url
EMAIL_USERNAME=your_email
EMAIL_PASSWORD=your_password
# Rate limiting for authentication endpoints
AUTH_LOGIN_MAX=10
AUTH_LOGIN_WINDOW_MS=900000
AUTH_REGISTER_MAX=5
AUTH_REGISTER_WINDOW_MS=3600000
The server includes rate limiting for authentication endpoints to prevent abuse:
- Login Protection:
AUTH_LOGIN_MAX
attempts perAUTH_LOGIN_WINDOW_MS
milliseconds (default: 10 per 15 minutes) - Registration Protection:
AUTH_REGISTER_MAX
attempts perAUTH_REGISTER_WINDOW_MS
milliseconds (default: 5 per hour)
When limits are exceeded, endpoints return:
{
"success": false,
"message": "Too many login attempts. Try again later."
}
DISCORD_TOKEN=your_discord_bot_token
GUILD_ID=your_guild_id
API_URL=http://localhost:5000
# Terminal 1 (For Backend)
cd server && npm run dev
# Terminal 2 (For Frontend)
cd client && npm run dev
# Terminal 3 (For Bot)
cd bot && node index.js
We love contributions from the community! To contribute:
- Fork the repository
- Create a new branch (
git checkout -b feature/your-feature
) - Commit your changes (
git commit -m 'Add some feature'
) - Push to the branch (
git push origin feature/your-feature
) - Open a Pull Request
For major changes, please open an issue first to discuss what youโd like to change.
We are grateful to all the amazing contributors who have helped make this project better! ๐
This project is licensed under the MIT License.