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.
- 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.
Ensure you have the following installed:
-
Clone the repository:
git clone https://github.com/your-username/clubdev.git
-
Navigate to the project directory:
cd clubdev -
Install the dependencies:
npm install
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"-
Start the development server:
npm run dev
| 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 |