Skip to content

ProjectBuzz - Digital marketplace for developers to buy and sell programming projects. Built with React, Node.js, MongoDB, and Razorpay. Features secure authentication, payment processing, and project delivery system. Live at projectbuzz.tech

License

Notifications You must be signed in to change notification settings

Aniruddha434/Project_buzzV1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

96 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ ProjectBuzz - Digital Project Marketplace

The premier digital marketplace for developers to buy and sell programming projects, source code, and innovative solutions.

Live Demo GitHub Vercel

React TypeScript Node.js MongoDB Tailwind Razorpay

GitHub stars GitHub forks GitHub issues GitHub license Code size Last commit

🌟 Live Application

πŸ”— Visit ProjectBuzz: https://projectbuzz.tech

πŸ“‹ Project Description

ProjectBuzz is a comprehensive digital marketplace that connects developers worldwide. Whether you're looking to buy ready-made projects to accelerate your development process or sell your innovative coding solutions, ProjectBuzz provides a secure, user-friendly platform with integrated payment processing and project delivery systems.

🎯 Key Highlights

  • πŸ›’ Buy & Sell Projects: Complete marketplace for digital programming projects
  • πŸ’³ Secure Payments: Integrated Razorpay payment gateway with wallet system
  • πŸ‘₯ Role-Based Access: Separate dashboards for buyers, sellers, and administrators
  • πŸ“± Responsive Design: Modern UI with dark theme and mobile optimization
  • πŸ” Secure Authentication: MongoDB-based JWT authentication with OAuth integration
  • πŸ“Š Analytics Dashboard: Comprehensive sales and purchase tracking
  • πŸš€ Production Ready: Deployed on Vercel with MongoDB Atlas backend

πŸ› οΈ Technology Stack

Frontend

  • React 18 with TypeScript
  • Tailwind CSS + shadcn/ui components
  • Vite for fast development and building
  • React Router for navigation
  • Axios for API communication
  • Three.js for 3D animations

Backend

  • Node.js + Express.js
  • MongoDB Atlas cloud database
  • JWT authentication
  • Razorpay payment integration
  • Multer for file uploads
  • Nodemailer for email notifications

Deployment & DevOps

  • Frontend: Vercel
  • Backend: Render
  • Database: MongoDB Atlas
  • Domain: BigRock (projectbuzz.tech)
  • Version Control: GitHub

πŸ—οΈ Architecture Overview

Frontend (React + TypeScript)

  • Authentication: MongoDB-based JWT authentication
  • UI Framework: React with TypeScript
  • Styling: Tailwind CSS with shadcn/ui components
  • API Communication: Axios with JWT token authentication
  • State Management: React Context for authentication

Backend (Node.js + Express)

  • Authentication: JWT-based authentication with MongoDB
  • Database: MongoDB Atlas (production) / Local MongoDB (development)
  • Payment Gateway: Razorpay Payment Gateway
  • File Storage: Local file storage with multer
  • API: RESTful endpoints with validation
  • Security: Helmet, CORS, input validation

πŸš€ Key Features

πŸ›’ Marketplace Features

  • βœ… Project Catalog: Browse and search programming projects by category, technology, and price
  • βœ… Advanced Filtering: Filter by programming language, framework, complexity level
  • βœ… Project Details: Comprehensive project descriptions with screenshots and demos
  • βœ… Multiple Images: Support for up to 5 project images with hover cycling
  • βœ… Real-time Search: Instant search with auto-suggestions

πŸ’³ Payment & Commerce

  • βœ… Razorpay Integration: Secure payment processing with multiple payment methods
  • βœ… Wallet System: Seller wallet management with automatic commission calculation
  • βœ… Instant Downloads: Immediate project access after successful payment
  • βœ… Purchase History: Complete transaction tracking for buyers and sellers
  • βœ… Payout Management: Automated seller payouts with 3-4 day processing

πŸ‘₯ User Management

  • βœ… Role-Based Access: Separate interfaces for buyers, sellers, and administrators
  • βœ… OAuth Integration: Google and GitHub login (GitHub under development)
  • βœ… Profile Management: Comprehensive user profiles with statistics
  • βœ… Seller Verification: Enhanced registration process for sellers
  • βœ… Admin Controls: Complete user and project management system

πŸ”§ Technical Features

  • βœ… MongoDB Atlas: Cloud database with production-ready scaling
  • βœ… JWT Authentication: Secure token-based authentication system
  • βœ… File Upload System: Secure project file handling and storage
  • βœ… Email Notifications: Automated notifications for purchases and updates
  • βœ… SEO Optimized: Comprehensive SEO implementation for better search visibility
  • βœ… Mobile Responsive: Optimized for all device sizes
  • βœ… Dark Theme: Modern dark UI with professional design
  • βœ… Performance Optimized: Fast loading with code splitting and lazy loading

πŸ“Έ Screenshots & Demo

🏠 Homepage

  • Modern landing page with featured projects
  • 3D animated ProjectBuzz logo with Rubik's cube design
  • Dark theme with professional corporate styling

πŸ›’ Marketplace

  • Grid layout with project cards showing images, pricing, and details
  • Advanced filtering and search functionality
  • Category-based browsing (Web, Mobile, Desktop, AI/ML, Blockchain, Games)

πŸ‘€ User Dashboards

  • Buyer Dashboard: Purchase history, downloaded projects, payment tracking
  • Seller Dashboard: Project management, sales analytics, wallet balance
  • Admin Dashboard: User management, project approval, system analytics

πŸ’³ Payment Flow

  • Integrated Razorpay checkout with multiple payment options
  • Instant project access after successful payment
  • Automated email confirmations and receipts

🌐 Live Demo

Experience ProjectBuzz: https://projectbuzz.tech

Test Accounts (Demo purposes)

  • Buyer Account: Register as buyer to browse and purchase projects
  • Seller Account: Register as seller to list and sell your projects
  • Payment Testing: Use Razorpay test cards for payment simulation

πŸ§ͺ Testing

ProjectBuzz includes a comprehensive testing suite with unit, integration, and end-to-end tests.

Test Structure

tests/
β”œβ”€β”€ integration/          # API and workflow integration tests
β”œβ”€β”€ unit/                 # Individual component/function tests
└── e2e/                  # End-to-end user journey tests

frontend/src/__tests__/   # Frontend component tests
backend/tests/            # Backend API and service tests

Running Tests

# All tests
npm test

# Frontend tests only
cd frontend && npm test

# Backend tests only
cd backend && npm test

# Integration tests
cd tests && npm run test:integration

# With coverage
npm run test:coverage

πŸš€ Setup Instructions

Prerequisites

  • Node.js (v18 or higher)
  • MongoDB Atlas account (for production) or local MongoDB (for development)
  • Razorpay account for payment processing
  • Gmail account with App Password for email notifications

Quick Start (Development)

  1. Install all dependencies

    npm run install:all
  2. Setup environment files

    npm run setup
  3. Start development servers

    npm run dev

Backend Setup

  1. Navigate to backend directory

    cd backend
  2. Install dependencies

    npm install
  3. Environment Configuration

    cp .env.example .env

    Edit .env with your configuration:

    # MongoDB Configuration
    MONGO_URI=mongodb://localhost:27017/projectbuzz
    
    # Server Configuration
    PORT=5000
    NODE_ENV=development
    FRONTEND_URL=http://localhost:5173
    
    # JWT Configuration
    JWT_SECRET=your-super-secret-jwt-key-here
    
    # Razorpay Configuration
    RAZORPAY_KEY_ID=your_razorpay_key_id
    RAZORPAY_KEY_SECRET=your_razorpay_key_secret
    
    # Email Configuration
    SMTP_USER=[email protected]
    SMTP_PASS=your-gmail-app-password
  4. Start the backend server

    npm run dev

Frontend Setup

  1. Navigate to frontend directory

    cd frontend
  2. Install dependencies

    npm install
  3. Environment Configuration Create .env file:

    VITE_API_URL=http://localhost:5000/api
    VITE_RAZORPAY_KEY_ID=your_razorpay_key_id
    VITE_APP_NAME=ProjectBuzz
  4. Start the frontend development server

    npm run dev

Production Deployment

MongoDB Atlas Migration

For production deployment, migrate from local MongoDB to MongoDB Atlas:

  1. Run the migration script

    npm run atlas:migrate
  2. Setup Atlas database

    npm run atlas:setup
  3. Validate production configuration

    npm run production:validate
  4. Verify deployment readiness

    npm run production:verify

Production Environment

  1. Create production environment file

    cp backend/.env.production.example backend/.env.production
  2. Update with production values

    NODE_ENV=production
    MONGO_URI=mongodb+srv://username:[email protected]/projectbuzz
    FRONTEND_URL=https://your-domain.com
    BACKEND_URL=https://api.your-domain.com
    JWT_SECRET=your-production-jwt-secret-64-characters-minimum
    RAZORPAY_KEY_ID=rzp_live_your_production_key
    RAZORPAY_KEY_SECRET=your_production_secret
  3. Deploy with PM2

    cd backend
    pm2 start ecosystem.config.js --env production

For detailed deployment instructions, see PRODUCTION-DEPLOYMENT.md

API Endpoints

Authentication

All protected endpoints require JWT token in Authorization header:

Authorization: Bearer <jwt-token>

Projects API

  • GET /api/projects - Get all approved projects (public)
  • GET /api/projects/my - Get current user's projects (seller)
  • GET /api/projects/:id - Get single project
  • POST /api/projects - Create new project (seller, with file upload)
  • PUT /api/projects/:id - Update project (seller)
  • DELETE /api/projects/:id - Delete project (seller)
  • POST /api/projects/:id/purchase - Purchase project (buyer)
  • GET /api/projects/:id/download - Download purchased project

Users API

  • GET /api/users/me - Get current user profile
  • PUT /api/users/me - Update user profile
  • GET /api/users/me/purchases - Get user's purchases
  • GET /api/users/me/sales - Get user's sales (seller)
  • GET /api/users/me/stats - Get user statistics
  • GET /api/users/:id - Get public user profile
  • GET /api/users - Get all users (admin)

File Upload Process

  1. Frontend: User selects file in form
  2. Frontend: File sent to backend via multipart/form-data
  3. Backend: Multer processes file upload
  4. Backend: File uploaded to Firebase Storage
  5. Backend: File metadata saved to MongoDB
  6. Backend: Public download URL returned

Database Models

User Model

{
  firebaseUid: String,
  email: String,
  displayName: String,
  role: ['buyer', 'seller', 'admin'],
  stats: {
    projectsPurchased: Number,
    projectsSold: Number,
    totalSpent: Number,
    totalEarned: Number
  }
}

Project Model

{
  title: String,
  description: String,
  price: Number,
  file: {
    url: String,
    filename: String,
    originalName: String
  },
  seller: ObjectId,
  buyers: [{ user: ObjectId, purchasedAt: Date }],
  status: ['pending', 'approved', 'rejected'],
  category: String,
  tags: [String]
}

Testing the Integration

  1. Start both servers (backend on :5000, frontend on :5173)
  2. Register/Login using Firebase Auth
  3. Switch to seller role in user profile
  4. Create a project with file upload
  5. Switch to buyer role
  6. Purchase and download the project

New Components

  • SellerDashboardNew.tsx - Backend-integrated seller dashboard
  • BuyerDashboardNew.tsx - Backend-integrated buyer dashboard
  • projectService.js - API service for projects
  • userService.js - API service for users

Migration Notes

The original components (SellerDashboard.tsx, BuyerDashboard.tsx) use direct Firebase calls. The new components (*New.tsx) use the backend API. You can gradually migrate by updating the route imports in App.tsx.

Security Features

  • Firebase token verification on all protected routes
  • Role-based access control
  • File type and size validation
  • Input sanitization and validation
  • CORS configuration
  • Helmet security headers

πŸ› Troubleshooting

  1. CORS errors: Check FRONTEND_URL in backend .env
  2. Auth errors: Verify JWT secret and MongoDB connection
  3. File upload errors: Check file size limits and storage permissions
  4. MongoDB errors: Ensure MongoDB Atlas connection string is correct
  5. Payment errors: Verify Razorpay API keys and webhook configuration

πŸ“Š Project Statistics

  • Total Lines of Code: 50,000+
  • Components: 100+ React components
  • API Endpoints: 30+ RESTful endpoints
  • Database Collections: 5 main collections
  • Deployment: Production-ready on Vercel + Render
  • Performance: 90+ Lighthouse score

🀝 Contributing

We welcome contributions to ProjectBuzz! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m 'Add amazing feature'
  4. Push to the branch: git push origin feature/amazing-feature
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ‘¨β€πŸ’» Developer

Aniruddha Gayki

🌟 Support the Project

If you find ProjectBuzz helpful, please consider:

  • ⭐ Starring the repository
  • πŸ› Reporting bugs and issues
  • πŸ’‘ Suggesting new features
  • 🀝 Contributing to the codebase
  • πŸ“’ Sharing with the developer community

Built with ❀️ by Aniruddha Gayki | © 2025 ProjectBuzz. All rights reserved.

πŸ”— Live Demo: https://projectbuzz.tech

About

ProjectBuzz - Digital marketplace for developers to buy and sell programming projects. Built with React, Node.js, MongoDB, and Razorpay. Features secure authentication, payment processing, and project delivery system. Live at projectbuzz.tech

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •