A vibrant community platform built exclusively for developers. Share your code snippets, engage in technical discussions, and connect with fellow developers from around the world.
CodeBook is a modern, full-stack social platform designed specifically for developers. It provides a space where developers can share code snippets, participate in technical discussions, showcase their work, and build meaningful connections within the developer community.
- GitHub OAuth Integration - Secure login with GitHub
- User Profiles - Customizable developer profiles with bio, tagline, and expertise
- Verified Accounts - Special verification badges for notable developers
- Code Snippets - Share and discover code snippets with syntax highlighting
- Monaco Editor - Rich code editing experience with language support
- Multiple Languages - Support for various programming languages
- Code Formatting - Automatic syntax highlighting and formatting
- Posts & Discussions - Create and engage in technical discussions
- Comments & Replies - Threaded comment system for better conversations
- Likes & Bookmarks - Save and appreciate content
- Developer Discovery - Find and connect with developers worldwide
- Follow System - Follow developers you admire
- Developer Cards - Beautiful, interactive developer profile cards
- Search & Filter - Advanced search and filtering capabilities
- Activity Feed - Stay updated with community activity
- Modern UI/UX - Beautiful, responsive design with smooth animations
- Dark Mode - Full dark mode support
- Real-time Updates - Live updates using React Query
- Toast Notifications - User-friendly notifications for actions
- Bounties - Post and discover coding bounties
- Reports & Moderation - Community-driven content moderation
- Block System - Block unwanted users
- Expertise Tags - Showcase your skills and expertise
- Framework: Next.js 14 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- UI Components: Radix UI, shadcn/ui
- State Management: React Query (TanStack Query), Redux Toolkit
- Animations: Framer Motion
- Code Editor: Monaco Editor
- Authentication: NextAuth.js
- Icons: Lucide React
- Runtime: Node.js
- Framework: Express.js
- Database: MongoDB with Mongoose
- Authentication: JWT, GitHub OAuth
- File Upload: Express file upload handling
- Package Manager: npm
- Linting: ESLint
- Type Checking: TypeScript
- Dev Tools: React Query Devtools
Before you begin, ensure you have the following installed:
- Node.js (v18 or higher)
- npm or yarn
- MongoDB (local or cloud instance)
- GitHub OAuth App (for authentication)
git clone https://github.com/yourusername/codebook.git
cd codebookInstall client dependencies:
cd client
npm installInstall server dependencies:
cd ../server
npm installCreate a .env.local file in the client directory:
# NextAuth Configuration
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your-nextauth-secret-here
# GitHub OAuth
GITHUB_CLIENT_ID=your-github-client-id
GITHUB_CLIENT_SECRET=your-github-client-secret
# API URL
NEXT_PUBLIC_API_URL=http://localhost:8000Create a .env file in the server directory:
# MongoDB Connection
MONGODB_URI=mongodb://localhost:27017/codebook
# or for MongoDB Atlas
# MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/codebook
# JWT Secret
JWT_SECRET=your-jwt-secret-here
# Server Port
PORT=8000Start the backend server:
cd server
npm startIn a new terminal, start the frontend:
cd client
npm run devThe application will be available at:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
codebook/
βββ client/ # Next.js frontend application
β βββ app/ # Next.js app router pages
β βββ components/ # React components
β βββ modals/ # Modal components
β βββ types/ # TypeScript type definitions
β βββ services/ # API service functions
β βββ hooks/ # Custom React hooks
β βββ utils/ # Utility functions
β
βββ server/ # Express.js backend application
β βββ controllers/ # Route controllers
β βββ routes/ # API routes
β βββ schemas/ # MongoDB schemas
β βββ middlewares/ # Express middlewares
β βββ utils/ # Utility functions
β
βββ README.md # This file
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLintnpm start # Start server with nodemon- Create and share code snippets with syntax highlighting
- Support for multiple programming languages
- Monaco editor for a rich editing experience
- Copy code functionality
- Like, comment, and bookmark snippets
- Beautiful profile cards with animations
- Follow/unfollow functionality
- Display follower and following counts
- Showcase bio, tagline, and expertise
- Verified account badges
- Create technical discussions
- Threaded comment system
- Like and reply to comments
- Search and filter discussions
Contributions are welcome! However, please note that this is a personal project. If you'd like to contribute:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Copyright (c) 2024 Aziz
All rights reserved.
This project and its source code are proprietary and confidential. Unauthorized copying, modification, distribution, or use of this software, via any medium, is strictly prohibited without the express written permission of the owner.
Aziz
- GitHub: @aziz-codes
- Email: [aziz.codes44@gmail.com]
- Next.js - The React Framework
- Express.js - Fast, unopinionated web framework
- MongoDB - The database for modern applications
- shadcn/ui - Beautifully designed components
- Framer Motion - Production-ready motion library
- Monaco Editor - Code editor
For support, email [aziz.codes44@gmail.com] or open an issue in the repository.
Made with β€οΈ by Aziz