Skip to content

nikpatil7/BattleBoardCP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

24 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ† BattleBoardCP: Code Contest Tracker

βš”οΈ Your ultimate dashboard for coding contests β€” track, compete, and improve like a pro!

Live Demo

πŸ“‹ Table of Contents

πŸš€ Why I Built BattleBoardCP

The Problem πŸ€”

Seeing my peers struggle to keep up with coding contests, I noticed problems such as:

  • Missing contests because there was no easy way to track them
  • Jumping between multiple platforms like Codeforces, CodeChef, and LeetCode
  • Losing track of past contests and their performance trends
  • Scattered notes, bookmarks, and solutions
  • No single dashboard to manage everything efficiently

My Solution πŸ’‘

I created BattleBoardCP to fix these issues. It’s a unified platform that helps you:

  • 🎯 Centralize contests from all major platforms in one place
  • ⏰ Never miss a contest with customizable email reminders
  • πŸ“Š Track your progress with detailed analytics and history
  • πŸ“ Organize your notes, bookmarks, and solutions efficiently
  • ⚑ Save time by eliminating the need to check multiple websites

πŸ“Έ Screenshots

Past Contest List Screenshot
Upcoming Contest List Screenshot
About Page Screenshot

✨ Key Features

  • Real-time contest updates from Codeforces, CodeChef, and LeetCode
  • Personalized contest bookmarking & notes
  • Email reminders for upcoming contests
  • Performance analytics and progress tracking
  • Secure OTP-based authentication

πŸ› οΈ Tech Stack

I kept it simple with MERN stack + a few extras:

  • Frontend β†’ React, Vite, Tailwind CSS
  • State Management β†’ Redux
  • Backend β†’ Node.js, Express
  • Database β†’ MongoDB
  • APIs β†’ CLIST API (contests), YouTube API (tutorials)
  • Other Tools β†’ Nodemailer (emails), node-cron (reminders)

React Vite Redux TailwindCSS NodeJS Express.js MongoDB

βš™οΈ Installation & Setup

Prerequisites

Before you begin, ensure you have the following installed:

  • Node.js (v18.x or higher)
  • npm or yarn
  • MongoDB (local or Atlas account)
  • Git

Step-by-Step Setup Guide

  1. Clone the Repo

    git clone https://github.com/nikpatil7/BattleBoardCP.git
    
    cd BattleBoardCP
  2. Frontend Setup

    cd frontend
    
    npm install
    
    echo "VITE_REACT_APP_BASE_URL=http://localhost:3030" > .env
    
    npm run dev
  3. Backend Setup

    cd backend
    
    npm install
    
    # Create .env file with your credentials
    # Replace the values with your actual credentials
    cat > .env << EOL
    MONGODB_URI=your_mongodb_uri
    JWT_SECRET=your_jwt_secret
    EMAIL_USER=your_email
    EMAIL_PASS=your_email_password
    PORT=3030
    EOL
    
    npm run dev

Environment Variables

Frontend (.env)

Backend (.env)

  • MONGODB_URI: MongoDB connection string
  • JWT_SECRET: Secret key for JWT token generation
  • EMAIL_USER: Email for sending notifications
  • EMAIL_PASS: Email app password
  • PORT: Server port (default: 3030)

🀝 Contributing

Contributions are welcome! Please follow these steps:

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

For major changes, please open an issue first to discuss what you would like to change.

Feel free to connect with me!



If you found this project helpful, please consider giving it a ⭐!

About

BattleBoardCP is your contest buddy that tracks upcoming contests from platforms like Codeforces, CodeChef and LeetCode It sends timely reminders and keeps track of your past contests, allowing you to bookmark them for quick access. πŸ“ And guess what? You can even add notes.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages