Skip to content

AnasHany2193/FixItHub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

459 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

FixItHub

GitHub Stars GitHub Forks GitHub Issues

๐ŸŒŸ Overview

Welcome to FixItHub, a dynamic full-stack web platform that connects customers with skilled workers for repair services and powers a vibrant marketplace for products! Hosted at FixItHub GitHub, FixItHub offers a seamless experience for managing repair requests, selling products, and overseeing platform operations. With role-based access for customers, workers, and admins, it ensures tailored functionality for each user. Featuring a sleek, portfolio-style interface with smooth animations, FixItHub is built for usability and scalability. Whether you're fixing a broken appliance or shopping for tools, FixItHub has you covered! ๐Ÿš€

๐Ÿš€ Features

๐Ÿ‘ฅ User Management

  • Authentication & Authorization: Secure registration and login using JWT-based authentication ๐Ÿ”’.
  • Role-Based Access: Supports three rolesโ€”customers, workers, and adminsโ€”with specific permissions for each.
  • Profile Management: Users can update personal details, including avatars, addresses, social media links, and worker-specific information like skills and certifications โœ๏ธ.
  • Public Profiles: Customers can view worker profiles (skills, ratings), and workers can view customer profiles (ratings, bio), with role-based restrictions ๐Ÿ‘€.

๐Ÿ› ๏ธ Repair Services

  • Repair Requests: Customers submit detailed requests with descriptions and images, trackable at /repairs/history ๐Ÿ“‹.
  • Worker Applications: Workers apply with skills, certifications, and work history, pending admin approval at /admin/users โœ….
  • Assignment Options: Supports auction-style bidding (/repairs/auctions) and direct offers (/repairs/direct-offers) for flexible repair assignments ๐Ÿ’ฐ.
  • Repair Tracking: Real-time status updates (e.g., "Awaiting Assignment", "Completed") โณ.
  • Reviews: Customers rate and review workers post-service, enhancing trust โญ.

๐Ÿ›’ Marketplace

  • Product Listings: Workers list items with images, descriptions, and prices at /marketplace/new-product ๐Ÿท๏ธ.
  • Shopping: Customers browse, filter, and purchase products at /marketplace/products ๐Ÿ›๏ธ.
  • Cart & Favorites: Add items to cart or favorites for easy access โค๏ธ.
  • Order Management: Track order statuses (e.g., "Pending", "Shipped") at /marketplace/orders ๐Ÿ“ฆ.
  • Reviews: Rate and review purchased products to share feedback ๐ŸŒŸ.

๐Ÿ–ฅ๏ธ Admin Panel

  • Dashboard: Displays system-wide stats (users, repairs, products, orders, reviews) and recent activities at /admin-dashboard ๐Ÿ“Š.
  • User Management: Admins can ban, activate, or approve worker applications at /admin/users ๐Ÿ‘ฎ.
  • Content Oversight: Manage repairs (/admin/repairs), products (/admin/products), orders (/admin/orders), and reviews (/admin/reviews) with delete capabilities ๐Ÿ—‘๏ธ.
  • Logs: Track admin actions (e.g., user bans, content deletions) at /admin/logs for transparency ๐Ÿ“œ.

๐ŸŽจ Additional Features

  • Responsive Design: Optimized for mobile and desktop with Tailwind CSS ๐Ÿ“ฑ๐Ÿ’ป.
  • Animations: Smooth transitions and hover effects using Framer Motion โœจ.
  • File Uploads: Supports image uploads for avatars, repair photos, and product images ๐Ÿ–ผ๏ธ.
  • Notifications: Toast alerts for success and error messages ๐Ÿ””.

๐Ÿ“ธ Screenshots

Explore FixItHub's user interface through these screenshots, available in the screenshots/ directory:

๐Ÿ› ๏ธ Technologies Used

Component Technology Purpose
Backend Node.js Server-side JavaScript runtime โš™๏ธ
Express.js RESTful API framework ๐ŸŒ
MongoDB (Mongoose) NoSQL database with schema management ๐Ÿ—„๏ธ
JWT Secure authentication tokens ๐Ÿ”‘
Bcrypt Password hashing ๐Ÿ”
Validator Input validation (emails, URLs) โœ…
Local Storage Image uploads ๐Ÿ“ธ
Frontend React Dynamic user interfaces โš›๏ธ
React Router Client-side navigation ๐Ÿงญ
Tailwind CSS Utility-first styling ๐ŸŽจ
shadcn/ui Reusable UI components ๐Ÿงฉ
Framer Motion Smooth animations ๐ŸŒˆ
React Query Data fetching and caching โšก
Axios API requests ๐Ÿ“ก
Lucide React Icon library ๐ŸŽฏ
Dev Tools Git Version control ๐Ÿ—‚๏ธ
ESLint, Prettier Code linting and formatting ๐Ÿงน

๐Ÿ“ฆ Installation

To run FixItHub locally:

  1. Clone the Repository:

    git clone https://github.com/AnasHany2193/FixItHub.git
    cd FixItHub
  2. Install Dependencies:

    npm install
  3. Set Up Environment Variables:

    • Create a .env file in the root:
      MONGO_URI=mongodb://localhost:27017/fixithub
      JWT_SECRET=your_jwt_secret_key
      BASE_URL=http://localhost:5000
    • Ensure MongoDB is running locally or use MongoDB Atlas.
  4. Start the Application:

    • Development mode:
      npm run dev
    • Production mode:
      npm start
  5. Access the Application:

๐ŸŽฏ Usage

Customers

  • Sign Up/Login: Register at /register or log in at /login.
  • Request Repairs: Submit details at /repairs/new ๐Ÿ”ง.
  • Browse Workers: View profiles at /users/:id to check skills and ratings.
  • Shop Marketplace: Explore products at /marketplace/products, add to cart, and purchase ๐Ÿ›’.
  • Track Activity: Monitor repairs at /repairs/history and orders at /marketplace/orders.
  • Leave Reviews: Rate workers and products post-service or purchase โญ.

Workers

  • Apply as Worker: Submit skills and certifications at /profile ๐Ÿ› ๏ธ.
  • Manage Repairs: Accept jobs at /repairs/auctions or /repairs/direct-offers.
  • Sell Products: List items at /marketplace/new-product.
  • View Customers: Check profiles at /users/:id.

Admins

  • Dashboard: View stats and activities at /admin-dashboard ๐Ÿ“ˆ.
  • Manage Users: Ban, activate, or approve workers at /admin/users ๐Ÿ‘ฅ.
  • Oversee Content: Handle repairs (/admin/repairs), products (/admin/products), orders (/admin/orders), and reviews (/admin/reviews).
  • View Logs: Monitor admin actions at /admin/logs ๐Ÿ“.

๐Ÿ“ Project Structure

FixItHub/
โ”œโ”€โ”€ backend/
โ”‚   โ”œโ”€โ”€ controllers/         # API logic (e.g., userController.js)
โ”‚   โ”œโ”€โ”€ models/             # Mongoose schemas (e.g., User.js)
โ”‚   โ”œโ”€โ”€ routes/             # Express routes (e.g., userRoutes.js)
โ”‚   โ”œโ”€โ”€ middleware/         # Authentication and role-based middleware
โ”‚   โ””โ”€โ”€ utils/              # Utilities (e.g., localImageUpload.js)
โ”œโ”€โ”€ frontend/
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ api/            # API clients (e.g., user.js)
โ”‚   โ”‚   โ”œโ”€โ”€ components/     # Reusable UI components (e.g., HeaderPages.jsx)
โ”‚   โ”‚   โ”œโ”€โ”€ hooks/          # React Query hooks (e.g., useUser.js)
โ”‚   โ”‚   โ”œโ”€โ”€ pages/          # Page components (e.g., UserProfilePage.jsx)
โ”‚   โ”‚   โ”œโ”€โ”€ layouts/        # Layout components (e.g., DashboardLayout.jsx)
โ”‚   โ”‚   โ””โ”€โ”€ context/        # Context providers (e.g., AuthContext.js)
โ”œโ”€โ”€ screenshots/            # UI screenshots (e.g., customer-dashboard.png)
โ”œโ”€โ”€ .env                    # Environment variables
โ”œโ”€โ”€ package.json            # Dependencies and scripts
โ””โ”€โ”€ README.md               # Project documentation

๐Ÿค Contributing

We welcome contributions to FixItHub! To get started:

  1. Fork the Repository:

    git clone https://github.com/AnasHany2193/FixItHub.git
  2. Create a Branch:

    git checkout -b feature/your-cool-idea
  3. Make Changes:

    • Write clean, documented code.
    • Follow ESLint and Prettier standards.
    • Add tests for new features or fixes.
  4. Commit Changes:

    • Use conventional commits (e.g., feat: add new feature, fix: resolve bug).
    git commit -m "feat: add my cool idea ๐ŸŒŸ"
  5. Submit a Pull Request:

    • Push your branch and create a pull request at GitHub Pull Requests.
    • Provide a clear description of your changes.

๐Ÿ‘ฅ Team Members

Role Team Member Focus Area
๐ŸŽจ UI/UX Designer Mariam Zaki User Experience Design
๐Ÿ’ป Frontend Dev Afnan Raafat React Implementation
๐Ÿ“ฑ Mobile Dev Islam Sobhi Flutter Applications
๐ŸŒ Full Stack Dev Anas Hany MERN Stack Architecture

Made with โ™ฅ by Team FixItHub
Empowering repairs, connecting communities

About

This project allows users to browse products, request repairs, and interact with service providers. Service providers can bid on repair requests, sell spare parts, and more!

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages