Skip to content

Gamify is an open-source gamification platform designed to help communities, teams, and individuals create their own achievement-based ecosystems.

License

Notifications You must be signed in to change notification settings

GollaBharath/Gamify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

54 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

๐Ÿ•น๏ธ GAMIFY โ€” Turn Any Goal into a Game

React Node.js Express MongoDB Discord.js License Contributors

๐ŸŽฏ An open-source platform to gamify productivity, collaboration, and community engagement.


๐Ÿ’กConcept Note

Click here to learn more about the project.


๐Ÿ“Š Project Statistics

GitHub Stars
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

๐Ÿ’ก Why Choose Gamify?

  • ๐Ÿ†“ 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

๐Ÿš€ Core Features

  • ๐ŸŽฏ 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

๐ŸŽ‰ Project Events & Highlights

Events Heading Events Heading


๐Ÿงฑ Tech Stack & Architecture

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

โš™ Folder Structures

Frontend folder structure

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

Backend folder structure

server/
โ”œโ”€ config/
โ”‚  โ””โ”€ db.js
โ”œโ”€ controllers/
โ”‚  โ”œโ”€ authController.js
โ”‚  โ””โ”€ userController.js
โ”œโ”€ middlewares/
โ”‚  โ””โ”€ authMiddleware.js
โ”œโ”€ models/
โ”‚  โ””โ”€ User.js
โ”œโ”€ routes/
โ”‚  โ”œโ”€ authRoutes.js
โ”‚  โ””โ”€ userRoutes.js
โ””โ”€ Additional Documentation

โšก Quick Start / Installation

Prerequisites

  • Node.js (v16+)
  • MongoDB (Atlas or local)
  • A Discord Bot Token (Get one here)

1. Clone the Repository

git clone https://github.com/gollabharath/gamify.git
cd gamify

2. Install Dependencies

cd client && npm install
cd ../server && npm install
cd ../bot && npm install

3. Setup Environment Variables

Create .env files in client/, server/, and bot/ directories.

Example: server/.env

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

Rate Limiting Configuration

The server includes rate limiting for authentication endpoints to prevent abuse:

  • Login Protection: AUTH_LOGIN_MAX attempts per AUTH_LOGIN_WINDOW_MS milliseconds (default: 10 per 15 minutes)
  • Registration Protection: AUTH_REGISTER_MAX attempts per AUTH_REGISTER_WINDOW_MS milliseconds (default: 5 per hour)

When limits are exceeded, endpoints return:

{
  "success": false,
  "message": "Too many login attempts. Try again later."
}

Example: bot/.env

DISCORD_TOKEN=your_discord_bot_token
GUILD_ID=your_guild_id
API_URL=http://localhost:5000

4. Run the App

In separate terminals:

# 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

๐Ÿค Contributing

We love contributions from the community! To contribute:

  1. Fork the repository
  2. Create a new branch (git checkout -b feature/your-feature)
  3. Commit your changes (git commit -m 'Add some feature')
  4. Push to the branch (git push origin feature/your-feature)
  5. Open a Pull Request

For major changes, please open an issue first to discuss what youโ€™d like to change.


๐ŸŽ–๏ธ Contributors

We are grateful to all the amazing contributors who have helped make this project better! ๐ŸŒŸ

๐Ÿ‘จโ€๐Ÿ’ป Meet Our Contributors

Contributors


๐Ÿ“„ License

This project is licensed under the MIT License.

License: MIT


About

Gamify is an open-source gamification platform designed to help communities, teams, and individuals create their own achievement-based ecosystems.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 26

Languages