π A comprehensive literary platform - Connecting book lovers, readers, and hobbyist writers in one unified ecosystem
BoiBritto is a modern, full-stack literary community platform that brings together book enthusiasts, aspiring writers, and passionate readers. The platform provides a comprehensive suite of tools for book discovery, collection management, reading tracking, community discussions, and creative writing - all wrapped in a beautiful, responsive interface.
The literary community lacks a unified platform that addresses all aspects of the reading and writing experience:
- Fragmented Tools: Readers use multiple platforms for discovery, tracking, and discussion
- Limited Social Features: Most platforms lack meaningful community interaction
- Poor Writing Support: Aspiring writers have limited platforms for sharing and feedback
- Inadequate Progress Tracking: Reading progress and recommendations are often disconnected
- No Creative Outlet: Limited platforms for both consuming and creating literary content
BoiBritto delivers a complete literary ecosystem with integrated features:
π Smart Book Discovery: Advanced search and filtering with Google Books API integration
π Personal Collections: Curated book lists with privacy controls and social sharing
π Reading Tracker: Comprehensive progress tracking with intelligent recommendations
βοΈ Creative Writing: Full-featured writing platform with chapter management
π¬ Community Discussions: Rich discussion forums with spoiler controls and moderation
π Literary Blogs: Markdown-supported blogging with genre tagging
π Advanced Privacy: Granular visibility controls for all content types
- Google Books Integration: Access to millions of books with rich metadata
- Advanced Search: Filter by genre, author, publication date, and more
- Personal Collections: Create and organize custom book collections
- Smart Recommendations: Suggestions based on reading history
- Collection Sharing: Public, friends-only, or private collection visibility
- Status Management: Track books as interested, reading, or completed
- Date Validation: Smart date controls preventing future dates and logical constraints
- Progress Analytics: Visual insights into reading habits and genre preferences
- Reading Goals: Set and track annual reading targets
- Genre-Based Recommendations: Top 5 most-read genres analysis
- User Book Creation: Full-featured book creation with metadata management
- Chapter Management: Organize content with chapter-by-chapter structure
- Rich Text Editor: Markdown support for formatted content
- Visibility Controls: Public, private, or friends-only publishing options
- Like System: Community engagement with like/unlike functionality
- Word Count Tracking: Automatic word count calculation and progress metrics
- Rich Discussion Forums: Create and participate in literary discussions
- Hierarchical Comments: Nested comment system with 1-level deep replies
- Spoiler Controls: Built-in spoiler alert system for sensitive content
- Genre Tagging: Categorize discussions by literary genres
- Moderation Tools: Community reporting and content flagging system
- Markdown Support: Full markdown editing with live preview
- Genre Classification: Tag blogs with relevant literary genres
- Visibility Management: Control who can read your content
- Spoiler Warnings: Protect readers from unwanted spoilers
- Social Sharing: Share insights with the community
- Rich Profiles: Customizable profiles with bio, avatar, and interested genres
- Activity Feeds: See updates from followed users and community activity
- Privacy Controls: Granular control over profile and content visibility
- Follow System: Build connections with other literary enthusiasts
- Firebase Authentication: Secure Google-based authentication
- Content Reporting: Comprehensive reporting system for inappropriate content
- Moderation Tools: Admin panel for content and user management
- Privacy Controls: User-controlled visibility settings for all content types
- AdminJS Integration: Comprehensive backend administration interface
- User Management: Admin tools for user account management
- Content Moderation: Review and moderate discussions, blogs, and user content
- Analytics Dashboard: Platform usage and engagement metrics
- Database Management: Direct access to all data models and relationships
| Technology | Version | Purpose |
|---|---|---|
| Next.js | 15.3.3 | React framework with SSR/SSG and App Router |
| React | 19.0.0 | Modern UI component library |
| TypeScript | 5.0 | Type-safe JavaScript development |
| TailwindCSS | 4.0 | Utility-first CSS framework |
| Lucide React | 0.511.0 | Modern icon library |
| Axios | 1.10.0 | HTTP client for API communication |
| Technology | Version | Purpose |
|---|---|---|
| Node.js | Latest | JavaScript runtime environment |
| Express.js | 5.1.0 | Web application framework |
| MongoDB | Latest | NoSQL database for flexible data storage |
| Mongoose | 8.15.0 | MongoDB object modeling and validation |
| Firebase Admin | 13.4.0 | Authentication and user management |
| Service | Purpose |
|---|---|
| Google Books API | Book data, metadata, and cover images |
| Firebase Auth | User authentication and session management |
| MongoDB Atlas | Cloud database hosting and management |
| Tool | Purpose |
|---|---|
| Vitest | Modern testing framework |
| ESLint | Code linting and style enforcement |
| Prettier | Code formatting |
| AdminJS | Backend administration interface |
- Node.js (v18 or higher)
- npm or yarn
- MongoDB database (local or Atlas)
- Firebase project with Authentication enabled
- Google Books API key
git clone https://github.com/your-username/boibritto.git
cd boibrittocd code/boibritto-server
npm install
# Create environment file
cp .env.example .envConfigure Environment Variables (.env):
# Database
MONGODB_URL=your_mongodb_connection_string
# Firebase Configuration
FIREBASE_PROJECT_ID=your_firebase_project_id
FIREBASE_CLIENT_EMAIL=your_firebase_client_email
FIREBASE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n"
# API Keys
WEB_API_KEY=your_google_books_api_key
# Server Configuration
PORT=5001
FRONTEND_URL=http://localhost:3000cd ../boibritto-client
npm install
# Create environment file
cp .env.local.example .env.localConfigure Frontend Environment (.env.local):
NEXT_PUBLIC_API_URL=http://localhost:5001/api
NEXT_PUBLIC_FIREBASE_API_KEY=your_firebase_web_api_key
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_project_id.firebaseapp.com
NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_firebase_project_idcd code/boibritto-server
npm run dev
# Server runs on http://localhost:5001cd code/boibritto-client
npm run dev
# Application runs on http://localhost:3000- Frontend: http://localhost:3000
- Backend API: http://localhost:5001/api
- Admin Panel: http://localhost:5001/admin
boibritto/
βββ code/
β βββ boibritto-client/ # Next.js React frontend
β β βββ app/ # App router pages
β β β βββ explore/ # Book discovery and search
β β β βββ collections/ # User collections management
β β β βββ readingitems/ # Reading list and progress tracking
β β β βββ discussions/ # Community discussion forums
β β β βββ blogs/ # Literary blogging platform
β β β βββ book/ # Individual book pages
β β β βββ profile/ # User profiles and settings
β β β βββ ... # Authentication and other pages
β β βββ components/ # Reusable UI components
β β β βββ home/ # Landing page components
β β β βββ book/ # Book-related components
β β β βββ profile/ # Profile and user components
β β β βββ layout/ # Navigation and layout
β β β βββ ui/ # Base UI components
β β βββ lib/ # Utility functions & configs
β β βββ public/ # Static assets
β βββ boibritto-server/ # Express.js backend API
β βββ api/ # Main application logic
β β βββ controllers/ # Request handlers
β β β βββ auth.controller.js # Authentication
β β β βββ collection.controller.js # Collections management
β β β βββ readingList.controller.js # Reading progress
β β β βββ blog.controller.js # Blogging system
β β β βββ discussion.controller.js # Discussion forums
β β β βββ comment.controller.js # Comment system
β β β βββ userBook.controller.js # User-created books
β β β βββ chapter.controller.js # Book chapters
β β β βββ report.controller.js # Content reporting
β β βββ models/ # Database schemas
β β βββ routes/ # API endpoints
β β βββ middlewares/ # Custom middleware
β β βββ utils/ # Helper functions
β βββ tests/ # Comprehensive test suites
β βββ components/ # Admin panel components
βββ README.md # Project documentation
π For detailed API documentation, request/response examples, authentication flows, and testing guides, check the API Documentation
Our RESTful API provides comprehensive endpoints for all platform features:
GET /api/auth/login # Firebase token authentication
POST /api/auth/signup # New user registration
GET /api/profile/me # Get current user profile
PATCH /api/profile/me # Update user information
GET /api/profile/:userID # Get public user profileGET /api/collections # List collections (with filtering)
POST /api/collections # Create new collection
GET /api/collections/:id # Get specific collection
PATCH /api/collections/:id # Update collection
DELETE /api/collections/:id # Delete collectionGET /api/reading-list/me # Get user's reading list
GET /api/reading-list/:userID # Get public reading list
POST /api/reading-list # Add book to reading list
PATCH /api/reading-list/:id # Update reading progress
DELETE /api/reading-list/:id # Remove from reading list
GET /api/reading-list/recommendations # Get genre recommendationsGET /api/user-books # List user-created books
POST /api/user-books # Create new book
GET /api/user-books/:id # Get book details
PATCH /api/user-books/:id # Update book
DELETE /api/user-books/:id # Delete book
POST /api/user-books/:id/like # Like/unlike bookGET /api/user-books/:bookId/chapters # Get book chapters
GET /api/chapters/:id # Get specific chapter
POST /api/chapters # Create new chapter
PATCH /api/chapters/:id # Update chapter
DELETE /api/chapters/:id # Delete chapter
POST /api/chapters/:id/like # Like/unlike chapterGET /api/discussions # List discussions (with filtering)
POST /api/discussions # Create new discussion
GET /api/discussions/:id # Get specific discussion
PATCH /api/discussions/:id # Update discussion
DELETE /api/discussions/:id # Delete discussionGET /api/comments/:discussionId # Get discussion comments
POST /api/comments # Create comment
PATCH /api/comments/:id # Update comment
DELETE /api/comments/:id # Delete commentGET /api/blogs # List blogs (with filtering)
POST /api/blogs # Create new blog
GET /api/blogs/:id # Get specific blog
PATCH /api/blogs/:id # Update blog
DELETE /api/blogs/:id # Delete blogPOST /api/reports # Submit content report
GET /api/reports/my-reports # Get user's submitted reportsAll API responses follow this consistent structure:
{
"success": true,
"message": "Operation completed successfully",
"data": {
// Response data here
}
}- Firebase JWT Tokens: Secure authentication with Google Integration
- Protected Routes: All user-specific endpoints require authentication
- Data Validation: Comprehensive input validation and sanitization
- Privacy Controls: User-defined visibility settings for all content
- Content Moderation: Built-in reporting and flagging system
cd code/boibritto-server
npm testOur comprehensive test suite covers:
- Unit Tests: Model validation and utility functions
- Integration Tests: API endpoint functionality
- Authentication Tests: Firebase token verification
- Database Tests: CRUD operations and data integrity
- Feature Tests: Collections, reading lists, blogs, discussions, and user books
# Run all tests
npm test
# Run specific test files
npm test blog.test.mjs
npm test collections.test.mjs
npm test readingList.test.mjs
npm test discussion.test.mjs
npm test comment.test.mjs
npm test userBook.test.mjs
npm test chapter.test.mjsThe backend is configured for deployment on platforms like Vercel, Railway, or any Node.js hosting service.
# Build for production
npm run build
# Start production server
npm startThe Next.js frontend can be deployed on Vercel, Netlify, or any static hosting service.
# Build for production
npm run build
# Start production server
npm startEnsure all environment variables are properly configured in your deployment platform:
- Database connection strings
- Firebase configuration
- API keys and secrets
- CORS settings for production domains
This project is licensed under the MIT License - see the LICENSE file for details.
- Firebase for robust authentication services
- MongoDB for flexible data storage
- Google Books API for comprehensive book data
- Next.js for powerful React framework capabilities
- TailwindCSS for beautiful, responsive design
- AdminJS for comprehensive backend administration
- The open-source community for amazing tools and libraries
Four passionate developers combining literature with cutting-edge technology
Built with β€οΈ for book lovers, readers, and literary communities
"Connecting readers, inspiring writers, building communities"



