Gamify your open-source journey!
GitBattle is a platform that tracks developers' contributions to open-source repositories and adds gamification elements like leaderboards, badges, and real-time notifications to encourage consistent participation and growth in the open-source community.
-
Automated Contribution Tracking
- Syncs with GitHub and GitLab APIs to fetch pull requests, commits, and issues.
-
Gamification
- Earn points, badges, and achievements based on your contribution types.
- Compete with peers on weekly, monthly, and all-time leaderboards.
-
Real-Time Notifications
- Stay updated with alerts for PR merges, badge achievements, and rank changes.
-
User Dashboard
- Visualize your contribution trends and milestones with interactive graphs and charts.
-
Admin Panel
- Configure platform rules, manage point systems, and monitor API usage limits.
-
Scalable Backend
- Powered by Docker, GRPC, and Redis for low-latency communication and high availability.
- React: Dynamic, interactive UI.
- TailwindCSS: Modern and responsive styling.
- Node.js: REST API and business logic.
- MongoDB: Database for storing user profiles and contributions.
- Redis: Caching frequently accessed data for high-speed performance.
- Docker: Containerized services for easy scalability.
- GRPC: Fast communication between microservices.
- WebSockets: Real-time notifications.
- GitHub/GitLab APIs: Fetches contributions like pull requests, issues, and commits.
-
Clone the repository:
git clone https://github.com/your-username/gitbattle.git cd gitbattle
-
Install dependencies for the backend and frontend:
cd backend npm install cd ../frontend npm install
-
Set up your .env file in the backend folder:
Copy code GITHUB_API_KEY=your_github_api_key GITLAB_API_KEY=your_gitlab_api_key MONGO_URI=your_mongo_connection_string REDIS_URL=your_redis_url JWT_SECRET=your_jwt_secret
-
Start the services using Docker:
Copy code docker-compose up
-
Access the application:
Frontend: http://localhost:3000 Backend: http://localhost:5000
We welcome contributions to make GitBattle even better! Here's how you can contribute:
- Fork the repository.
- Create a new branch for your feature or bug fix.
git checkout -b feature/your-feature-name
- Commit your changes:
git commit -m "Add your message here"
- Push the branch:
git push origin feature/your-feature-name
- Submit a Pull Request.
For questions or feedback, feel free to open an issue or reach out at [email protected] .
Let me know if you'd like to adjust the structure or content!