Skip to content

Never lose your coding streaks again. Track all your development activity across multiple platforms in one unified dashboard.

Notifications You must be signed in to change notification settings

vimalyad/devStreak

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

22 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ”₯ devStreak

Never lose your coding streaks again. Track all your development activity across multiple platforms in one unified dashboard.

License: MIT PRs Welcome Open Source

πŸ“– Table of Contents

🎯 The Problem

As developers, we maintain streaks on multiple platformsβ€”LeetCode, GitHub, Codeforces, HackerRank, and more. But tracking them individually is tedious, and losing a streak because you forgot about one platform is frustrating.

devStreak solves this by bringing all your coding activity into a single, unified dashboard.

✨ The Solution

devStreak is a cross-platform activity tracker that:

  • Aggregates your coding activity from multiple platforms
  • Shows all your streaks in one place
  • Sends you reminders before streaks expire
  • Provides insights into your coding habits
  • Makes it easy to maintain consistency across platforms

πŸš€ Features

  • Unified Dashboard: View all your platform streaks at a glance
  • Multi-Platform Support: LeetCode, GitHub, Codeforces, HackerRank, and more
  • Real-Time Sync: Automatic updates from connected platforms
  • Streak Notifications: Get reminded before your streak expires
  • Activity Insights: Visualize your coding patterns over time
  • Plugin Architecture: Easy to add new platforms without touching core code
  • Responsive Design: Works seamlessly on desktop and mobile

πŸ› οΈ Tech Stack

Frontend

  • React with Vite for fast development
  • Tailwind CSS for styling
  • React Router for navigation

Backend

  • Java with SpringBoot
  • PostgreSQL for data storage
  • RESTful API architecture
  • JWT for authentication

Integrations

  • Platform-specific APIs (GitHub, LeetCode, etc.)
  • Scheduled jobs for automatic syncing

πŸƒ Getting Started

Prerequisites

  • Node.js (v16 or higher)
  • Java (17+ or higher)
  • PostgreSQL (v14 or higher)
  • npm or yarn

Installation

  1. Clone the repository
git clone https://github.com/yamiSukehiro/devStreak.git
cd devStreak
  1. Install dependencies
# Install backend dependencies
cd backend
npm install

# Install frontend dependencies
cd ../frontend
npm install
  1. Set up environment variables

Create a .env file in the backend directory:

PORT=5000
DATABASE_URL=postgresql://username:password@localhost:5432/devstreak
JWT_SECRET=your_jwt_secret_here
NODE_ENV=development

# Platform API Keys (add as needed)
GITHUB_CLIENT_ID=your_github_client_id
GITHUB_CLIENT_SECRET=your_github_client_secret

Create a .env file in the frontend directory:

VITE_API_URL=http://localhost:5000/api
  1. Set up the database
cd backend
npm run db:migrate
npm run db:seed # Optional: adds sample data
  1. Run the application

In separate terminals:

# Terminal 1 - Backend
cd backend
npm run dev

# Terminal 2 - Frontend
cd frontend
npm run dev

The app will be available at http://localhost:5173

πŸ“ Project Structure

devStreak/
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/       # React components
β”‚   β”‚   β”œβ”€β”€ pages/            # Page components
β”‚   β”‚   β”œβ”€β”€ services/         # API calls
β”‚   β”‚   β”œβ”€β”€ utils/            # Helper functions
β”‚   β”‚   └── App.jsx           # Main app component
β”‚   └── package.json
β”‚
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ configurations/           # Configuration files
β”‚   β”‚   β”œβ”€β”€ controllers/      # Route controllers
β”‚   β”‚   β”œβ”€β”€ dtos/           # Database models
β”‚   β”‚   β”œβ”€β”€ entities/          
β”‚   β”‚   β”œβ”€β”€ services/         # Business logic
β”‚   β”‚   β”œβ”€β”€ repositories/          # Platform integrations
|   |   β”œβ”€β”€ utils/
β”‚   β”‚   └── BackendApplication.java       # Entry point
β”‚   └── pom.xml
β”‚
└── README.md

🀝 Contributing

We love contributions! Here's how you can help:

Ways to Contribute

  • πŸ› Report bugs and issues
  • πŸ’‘ Suggest new features or platforms
  • πŸ“ Improve documentation
  • πŸ”Œ Add new platform integrations
  • ✨ Submit pull requests

Contribution Guidelines

  1. Fork the repository
  2. Create a feature branch
    git checkout -b feature/amazing-feature
  3. Make your changes
  4. Test thoroughly
  5. Commit with clear messages
    git commit -m "Add: Support for CodeChef platform"
  6. Push to your fork
    git push origin feature/amazing-feature
  7. Open a Pull Request

Commit Message Convention

We follow conventional commits:

  • feat: - New feature
  • fix: - Bug fix
  • docs: - Documentation changes
  • style: - Code style changes (formatting, etc.)
  • refactor: - Code refactoring
  • test: - Adding or updating tests
  • chore: - Maintenance tasks

Example: feat: add Codeforces platform integration

Code Style

  • Use ESLint and Prettier (configs included)
  • Write meaningful variable names
  • Comment complex logic
  • Follow existing code patterns
  • Add tests for new features

πŸ—ΊοΈ Roadmap

Current Version (v1.0)

  • βœ… Multi-platform support (GitHub, LeetCode, Codeforces, HackerRank)
  • βœ… Unified dashboard
  • βœ… Basic streak tracking
  • βœ… Plugin architecture

Upcoming Features (v1.1)

  • Email/Push notifications
  • Streak reminders
  • Dark mode
  • Mobile app (React Native)
  • More platform integrations (CodeChef, AtCoder, TopCoder)

Future Plans (v2.0)

  • Social features (follow friends, compare streaks)
  • Gamification (badges, achievements)
  • Analytics dashboard
  • Custom streak goals
  • API for third-party integrations
  • Browser extension

πŸ“Š Platform Support

Platform Status Streak Tracking Activity Feed
GitHub βœ… Live βœ… βœ…
LeetCode βœ… Live βœ… βœ…
Codeforces βœ… Live βœ… βœ…
HackerRank βœ… Live βœ… βœ…
CodeChef 🚧 In Progress - -
AtCoder πŸ“‹ Planned - -
TopCoder πŸ“‹ Planned - -

Want to add a platform? See Adding New Platforms!

πŸ› Known Issues

  • GitHub API rate limiting on free tier
  • LeetCode unofficial API occasionally unstable
  • Timezone handling for streak calculations needs improvement

See Issues for full list.

πŸ”’ Security

  • All API keys are stored securely using environment variables
  • Passwords are hashed using bcrypt
  • JWT tokens expire after 7 days
  • CORS enabled only for trusted origins
  • Input validation on all endpoints

Found a security vulnerability? Please email vimalyadavkr001@gmail.com instead of opening a public issue.

πŸ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Thanks to all platform APIs for making this possible
  • Inspired by the frustration of losing streaks
  • Built with ❀️ by developers, for developers

πŸ“ž Contact & Support

Support the Project

If you find devStreak helpful:

  • ⭐ Star this repository
  • πŸ› Report bugs
  • πŸ’‘ Suggest features
  • πŸ”€ Submit pull requests
  • πŸ“’ Share with other developers

πŸ’» Development

Running Tests

# Backend tests
cd backend
npm test

# Frontend tests
cd frontend
npm test

# Test specific plugin
npm run test:plugin github

Building for Production

# Build frontend
cd frontend
npm run build

# The build files will be in frontend/dist/

# Start backend in production mode
cd backend
NODE_ENV=production npm start

Database Migrations

# Create new migration
npm run migration:create add_new_table

# Run migrations
npm run db:migrate

# Rollback last migration
npm run db:rollback

Built with πŸ”₯ by developers who hate losing streaks

⬆ Back to Top

About

Never lose your coding streaks again. Track all your development activity across multiple platforms in one unified dashboard.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published