Skip to content

Repository files navigation

ClubDev: Your Personal Coding Journey Companion

Build Status License npm version GitHub contributors GitHub issues GitHub pull requests

Log your progress, connect with the community, and level up your coding skills with ClubDev!

ClubDev is a platform built for developers to journal their coding adventures, track their progress, gain valuable insights through analytics, and connect with a vibrant community of fellow developers. Whether you're a seasoned coder or just starting your journey, ClubDev provides the tools and support you need to succeed.

Key Features

  • Journaling: Log your daily coding activities, challenges, and triumphs. Use the rich text editor to format your entries, add code snippets, and embed media.
  • Progress Tracking: Visualize your coding journey with insightful analytics and charts. Track your coding streaks, levels, and achievements.
  • AI-Powered Assistance: Leverage AI for writing assistance, code review, and programming chat. Get personalized recommendations and suggestions to improve your coding habits.
  • Community Feed: Connect with other developers, share your experiences, and learn from each other. Explore the public feed, follow other users, and engage in discussions.
  • Gamification: Earn points, unlock badges, and climb the leaderboard. Participate in community challenges and stay motivated on your coding journey.
  • Integrations: Connect with popular developer tools like GitHub and Notion to seamlessly track your coding activities and projects.
  • Mind Map Generator: Create and share interactive mind maps to visualize your ideas and projects.

Getting Started

Prerequisites

Ensure you have the following installed:

Installation

  1. Clone the repository:

    git clone https://github.com/your-username/clubdev.git
  2. Navigate to the project directory:

    cd clubdev
  3. Install the dependencies:

    npm install

Environment Variables

Create a .env file in the root directory and add the following environment variables:

DATABASE_URL="your_database_url"
GOOGLE_AI_API_KEY="your_google_ai_api_key"
GOOGLE_CLIENT_ID="your_google_client_id"
GOOGLE_CLIENT_SECRET="your_google_client_secret"
GITHUB_ID="your_github_id"
GITHUB_SECRET="your_github_secret"
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY="your_stripe_publishable_key"
STRIPE_SECRET_KEY="your_stripe_secret_key"
STRIPE_WEBHOOK_SECRET="your_stripe_webhook_secret"
AWS_REGION="your_aws_region"
AWS_ACCESS_KEY_ID="your_aws_access_key_id"
AWS_SECRET_ACCESS_KEY="your_aws_secret_access_key"
AWS_S3_BUCKET_NAME="your_aws_s3_bucket_name"
EMAIL_SERVER_HOST="your_email_server_host"
EMAIL_SERVER_PORT="your_email_server_port"
EMAIL_SERVER_USER="your_email_server_user"
EMAIL_SERVER_PASSWORD="your_email_server_password"
EMAIL_FROM="your_email_from_address"
ELASTICSEARCH_NODE="your_elasticsearch_node"
ELASTICSEARCH_USERNAME="your_elasticsearch_username"
ELASTICSEARCH_PASSWORD="your_elasticsearch_password"
NEXT_PUBLIC_WEBSOCKET_URL="your_websocket_url"
NEXT_PUBLIC_APP_URL="your_app_url"

Running Locally

  1. Start the development server:

    npm run dev

API Endpoints

API Endpoint Method Description
/api/achievements GET Fetch all achievements for the authenticated user
/api/ai/chat POST Handle AI chat requests
/api/ai/code-review POST Generate code review using AI
/api/ai/generate-code POST Generate code using AI
/api/ai/generate-mindmap POST Generate mind map using AI
/api/ai/generate-prompt POST Generate prompt using AI
/api/ai/programming-chat POST Handle programming chat requests using AI
/api/ai/writing-assistant POST Handle writing assistant requests using AI
/api/analytics GET Fetch analytics data
/api/auth/[...nextauth] POST Handle authentication
/api/auth/signup POST Handle user signup
/api/categories GET Fetch all categories
/api/challenges GET Fetch all challenges for the authenticated user
/api/challenges POST Create a new challenge
/api/challenges/:id PUT Update challenge completion status
/api/create-checkout-session POST Create a new Stripe checkout session
/api/entries/:id/comments POST Add a comment to an entry
/api/entries/:id/flag POST Flag an entry
/api/entries/:id/like POST Like an entry
/api/entries/:id/peer-review POST Add a peer review to an entry
/api/entries/:id/pinned POST Pin an entry
/api/entries/:id/recent GET Fetch recent entries
/api/gamification/leaderboard GET Fetch the leaderboard
/api/gamification/update-points POST Update user points
/api/gamification/user-data GET Fetch user gamification data
/api/github/commits GET Fetch GitHub commits
/api/github/repositories GET Fetch GitHub repositories
/api/github/leaderboard GET Fetch GitHub leaderboard
/api/mindmaps/:id/share POST Share a mind map
/api/moderation POST Handle moderation requests
/api/notifications GET Fetch user notifications
/api/notion/pages GET Fetch Notion pages
/api/recommendations GET Fetch recommendations
/api/search GET Search entries
/api/subscription/downgrade POST Downgrade user subscription
/api/topic-clusters GET Fetch topic clusters
/api/upload POST Handle file uploads
/api/user/animation-preference GET Get the animation preference of the authenticated user
/api/user/animation-preference POST Update the animation preference of the authenticated user
/api/user/streak GET Fetch user streak data
/api/users/:id/follow POST Follow a user
/api/users/:id/profile GET Fetch user profile
/api/users/:id/reputation GET Fetch user reputation
/api/webhook POST Handle Stripe webhook events

GitHub Stats

GitHub Stats Top Languages GitHub Streak GitHub Trophies GitHub Activity Graph GitHub Contribution Graph GitHub Readme Stats

About

ClubDev is a platform built for developers to journal their coding adventures, track their progress, gain valuable insights through analytics, and connect with a vibrant community of fellow developers. Whether you're a seasoned coder or just starting your journey, ClubDev provides the tools and support you need to succeed.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages