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 [email protected] 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