Skip to content

About

Build My PC is a premium e-commerce platform that empowers users to design custom computers. It features an interactive 3D visualizer, real-time compatibility checking, and smart auto-build suggestions based on budget and persona. Built with React and Node.js, it offers a seamless, modern UI.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

8 Commits

Folders and files

Repository files navigation

πŸ–₯️ Build My PC - Full-Stack PC Builder Application

A modern, production-ready PC customization and e-commerce platform with automatic compatibility checking, intelligent build evaluation, and a premium dark-themed UI.

Tech Stack Express React Node.js Tailwind CSS

✨ Features

🎯 Core Features

  • Smart PC Builder: Select components across 9 categories (CPU, Motherboard, GPU, RAM, Storage, PSU, Cabinet, Cooler, Accessories)
  • Auto Compatibility Checking: Real-time validation of component compatibility
  • "Is It Worth It?" AI Evaluation: Intelligent analysis of build balance and value
  • Shopping Cart: Full e-commerce cart functionality with quantity management
  • User Authentication: JWT-based secure login and registration
  • Saved Builds: Save and retrieve custom PC configurations
  • Admin Panel: Complete product management system

🎨 Design Features

  • Dark Theme: Premium #0f172a background with neon accents
  • Glassmorphism: Modern frosted glass card effects
  • Neon Gradients: Blue + Purple gradient highlights
  • Smooth Animations: Fade-in, slide-up, and hover effects
  • Fully Responsive: Mobile-first design with breakpoints
  • Custom Scrollbar: Styled with gradient effects

πŸš€ Tech Stack

Backend

  • Node.js + Express.js - REST API server
  • MongoDB + Mongoose - Database and ODM
  • JWT - Authentication
  • Bcrypt - Password hashing
  • Multer - Image upload handling
  • CORS - Cross-origin resource sharing

Frontend

  • React 18 - UI library
  • Vite - Build tool and dev server
  • React Router - Client-side routing
  • Tailwind CSS - Utility-first styling
  • Axios - HTTP client
  • Context API - State management

πŸ“¦ Installation

Prerequisites

  • Node.js (v16 or higher)
  • MongoDB (local or Atlas)
  • npm or yarn

Backend Setup

  1. Navigate to backend directory: ```bash cd backend ```

  2. Install dependencies: ```bash npm install ```

  3. Configure environment variables: Create a `.env` file in the backend directory: ```env MONGODB_URI=mongodb://localhost:27017/buildmypc JWT_SECRET=your_super_secret_jwt_key_change_this_in_production PORT=5000 NODE_ENV=development ```

  4. Start the server: ```bash npm run dev ```

The backend will run on http://localhost:5000

Frontend Setup

  1. Navigate to frontend directory: ```bash cd frontend ```

  2. Install dependencies: ```bash npm install ```

  3. Start the development server: ```bash npm run dev ```

The frontend will run on http://localhost:5173

πŸ“ Project Structure

``` Build my Pc/ β”œβ”€β”€ backend/ β”‚ β”œβ”€β”€ models/ # MongoDB schemas β”‚ β”‚ β”œβ”€β”€ User.js β”‚ β”‚ β”œβ”€β”€ Product.js β”‚ β”‚ β”œβ”€β”€ Build.js β”‚ β”‚ └── Cart.js β”‚ β”œβ”€β”€ routes/ # API endpoints β”‚ β”‚ β”œβ”€β”€ auth.js β”‚ β”‚ β”œβ”€β”€ products.js β”‚ β”‚ β”œβ”€β”€ builds.js β”‚ β”‚ └── cart.js β”‚ β”œβ”€β”€ middleware/ # Auth & upload middleware β”‚ β”‚ β”œβ”€β”€ auth.js β”‚ β”‚ └── upload.js β”‚ β”œβ”€β”€ utils/ # Helper functions β”‚ β”‚ β”œβ”€β”€ compatibility.js β”‚ β”‚ └── evaluation.js β”‚ β”œβ”€β”€ uploads/ # Product images β”‚ β”œβ”€β”€ server.js # Express server β”‚ └── package.json β”‚ └── frontend/ β”œβ”€β”€ src/ β”‚ β”œβ”€β”€ components/ # Reusable components β”‚ β”‚ β”œβ”€β”€ Navbar.jsx β”‚ β”‚ β”œβ”€β”€ ProductCard.jsx β”‚ β”‚ β”œβ”€β”€ BuildSummary.jsx β”‚ β”‚ β”œβ”€β”€ CompatibilityStatus.jsx β”‚ β”‚ └── GlassCard.jsx β”‚ β”œβ”€β”€ pages/ # Route pages β”‚ β”‚ β”œβ”€β”€ Home.jsx β”‚ β”‚ β”œβ”€β”€ BuildPC.jsx β”‚ β”‚ β”œβ”€β”€ Cart.jsx β”‚ β”‚ β”œβ”€β”€ Auth.jsx β”‚ β”‚ └── Admin.jsx β”‚ β”œβ”€β”€ context/ # React context β”‚ β”‚ └── AuthContext.jsx β”‚ β”œβ”€β”€ services/ # API calls β”‚ β”‚ └── api.js β”‚ β”œβ”€β”€ App.jsx β”‚ β”œβ”€β”€ main.jsx β”‚ └── index.css β”œβ”€β”€ index.html β”œβ”€β”€ package.json β”œβ”€β”€ vite.config.js └── tailwind.config.js ```

πŸ”Œ API Endpoints

Authentication

  • `POST /api/auth/register` - Register new user
  • `POST /api/auth/login` - Login user

Products

  • `GET /api/products` - Get all products (with filters)
  • `GET /api/products/:id` - Get single product
  • `POST /api/products` - Create product (Admin)
  • `PUT /api/products/:id` - Update product (Admin)
  • `DELETE /api/products/:id` - Delete product (Admin)

Builds

  • `POST /api/builds` - Save build
  • `GET /api/builds/user/:userId` - Get user's builds
  • `GET /api/builds/:id` - Get specific build
  • `DELETE /api/builds/:id` - Delete build
  • `POST /api/builds/check-compatibility` - Check compatibility

Cart

  • `GET /api/cart/:userId` - Get user's cart
  • `POST /api/cart` - Add item to cart
  • `PUT /api/cart/:userId/item/:productId` - Update quantity
  • `DELETE /api/cart/:userId/item/:productId` - Remove item
  • `DELETE /api/cart/:userId` - Clear cart

🧠 Compatibility Logic

The system automatically checks:

  • βœ… CPU socket matches Motherboard socket
  • βœ… RAM type matches Motherboard support
  • βœ… PSU wattage is sufficient for components
  • βœ… GPU length fits in Cabinet
  • βœ… Motherboard form factor fits in Cabinet

πŸ’° "Is It Worth It?" Evaluation

The AI evaluation considers:

  • CPU-GPU price balance
  • Price-to-performance ratio
  • RAM capacity adequacy
  • Storage type (SSD/NVMe bonus)
  • Overall build category (Excellent/Good/Fair/Poor)

🎨 Design System

Colors

  • Background: #0f172a (dark-bg)
  • Cards: #1e293b (dark-card)
  • Primary Blue: #0ea5e9
  • Primary Purple: #a855f7
  • Gradients: Blue to Purple (135deg)

Components

  • Glass Cards: Frosted glass effect with backdrop blur
  • Neon Borders: Gradient borders with glow
  • Buttons: Gradient backgrounds with hover effects
  • Animations: Fade-in, slide-up, pulse, glow

πŸ‘€ Default Admin Account

To access the admin panel, you'll need to manually set a user's `isAdmin` field to `true` in MongoDB.

πŸš€ Deployment

Backend (Render/Railway)

  1. Push code to GitHub
  2. Connect repository to Render/Railway
  3. Set environment variables
  4. Deploy

Frontend (Vercel/Netlify)

  1. Push code to GitHub
  2. Connect repository to Vercel/Netlify
  3. Set build command: `npm run build`
  4. Set output directory: `dist`
  5. Deploy

Database (MongoDB Atlas)

  1. Create cluster on MongoDB Atlas
  2. Get connection string
  3. Update `MONGODB_URI` in backend .env

πŸ“ Usage

  1. Register/Login: Create an account or login
  2. Browse Components: Navigate to Build PC page
  3. Select Parts: Choose components from each category
  4. Check Compatibility: View real-time compatibility status
  5. Get Evaluation: See "Is It Worth It?" analysis
  6. Add to Cart: Add complete build to shopping cart
  7. Save Build: Save configuration for later
  8. Checkout: Complete purchase (demo mode)

πŸŽ“ Perfect for BSc IT Projects

This project demonstrates:

  • βœ… Full-stack development
  • βœ… RESTful API design
  • βœ… Database modeling
  • βœ… Authentication & authorization
  • βœ… Modern UI/UX design
  • βœ… Responsive web design
  • βœ… State management
  • βœ… File upload handling
  • βœ… Complex business logic

πŸ“„ License

MIT License - feel free to use for your projects!

🀝 Contributing

Contributions are welcome! Feel free to submit issues and pull requests.


Built with ❀️ for PC enthusiasts

About

Build My PC is a premium e-commerce platform that empowers users to design custom computers. It features an interactive 3D visualizer, real-time compatibility checking, and smart auto-build suggestions based on budget and persona. Built with React and Node.js, it offers a seamless, modern UI.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages