Click here to learn more about the project.
Stars GitHub Forks
Forks GitHub Issues
Open Issues Closed Issues
Closed Issues Open PRs
Open PRs Closed PRs
Closed PRs GitHub Contributors
Contributors Commits per Month
Commits Repo Size
Project Size
๐ 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/DeadIndian/Gamify.git
cd gamifycd 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_MAXattempts perAUTH_LOGIN_WINDOW_MSmilliseconds (default: 10 per 15 minutes) - Registration Protection:
AUTH_REGISTER_MAXattempts perAUTH_REGISTER_WINDOW_MSmilliseconds (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
Ready to deploy Gamify? We have detailed deployment guides to help you:
| Guide | Description |
|---|---|
| ๐ General Deployment Guide | Step-by-step instructions for deploying the full stack app |
| โ๏ธ Cloudflare Deployment Guide | Guide for deploying on Cloudflare Workers & Pages |
๐ก New to deployment? Start with the General Deployment Guide.
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.