An open API service indexing awesome lists of open source software.

https://github.com/anashany2193/fixithub

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!
https://github.com/anashany2193/fixithub

cloudinary concurrency mongodb node nodemailer react react-query

Last synced: 4 months ago
JSON representation

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!

Awesome Lists containing this project

README

          

# FixItHub

[![GitHub Stars](https://img.shields.io/github/stars/AnasHany2193/FixItHub.svg)](https://github.com/AnasHany2193/FixItHub/stargazers)
[![GitHub Forks](https://img.shields.io/github/forks/AnasHany2193/FixItHub.svg)](https://github.com/AnasHany2193/FixItHub/network)
[![GitHub Issues](https://img.shields.io/github/issues/AnasHany2193/FixItHub.svg)](https://github.com/AnasHany2193/FixItHub/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](https://github.com/AnasHany2193/FixItHub), 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/](https://github.com/AnasHany2193/FixItHub/tree/main/screenshots) directory:

- [Customer Dashboard](https://github.com/AnasHany2193/FixItHub/blob/main/screenshots/customer-dashboard.png): View repair and order summaries ๐Ÿ–ฅ๏ธ.
- [Worker Dashboard](https://github.com/AnasHany2193/FixItHub/blob/main/screenshots/Customer/dashboard-light.png): Monitor active repairs and product sales ๐Ÿ“ˆ.
- [Admin Dashboard](https://github.com/AnasHany2193/FixItHub/blob/main/screenshots/Admin/dashboard-light.png): System stats and management tools ๐Ÿ“Š.
- [Repair Request Form](https://github.com/AnasHany2193/FixItHub/blob/main/screenshots/Customer/Repairs/1-repairs-new-light.png): Submit repair details with ease ๐Ÿ”ง.
- [Product Listing](https://github.com/AnasHany2193/FixItHub/blob/main/screenshots/Customer/Products/1-products-light.png): Browse marketplace products ๐Ÿ›’.

## ๐Ÿ› ๏ธ 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**:

```bash
git clone https://github.com/AnasHany2193/FixItHub.git
cd FixItHub
```

2. **Install Dependencies**:

```bash
npm install
```

3. **Set Up Environment Variables**:

- Create a `.env` file in the root:
```env
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](https://www.mongodb.com/cloud/atlas).

4. **Start the Application**:

- Development mode:
```bash
npm run dev
```
- Production mode:
```bash
npm start
```

5. **Access the Application**:
- Open [http://localhost:5000](http://localhost:5000) in your browser ๐ŸŒ.

## ๐ŸŽฏ 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**:

```bash
git clone https://github.com/AnasHany2193/FixItHub.git
```

2. **Create a Branch**:

```bash
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`).

```bash
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](https://github.com/AnasHany2193/FixItHub/pulls).
- Provide a clear description of your changes.

## ๐Ÿ‘ฅ Team Members

| Role | Team Member | Focus Area |
| ----------------- | ---------------------------------------------------- | ----------------------- |
| ๐ŸŽจ UI/UX Designer | [Mariam Zaki](https://github.com/maryem-zaky) | User Experience Design |
| ๐Ÿ’ป Frontend Dev | [Afnan Raafat](https://github.com/afnan-raafat) | React Implementation |
| ๐Ÿ“ฑ Mobile Dev | [Islam Sobhi](https://github.com/Islam-Sobhy-Yousof) | Flutter Applications |
| ๐ŸŒ Full Stack Dev | [Anas Hany](https://github.com/AnasHany2193) | MERN Stack Architecture |

---

**Made with โ™ฅ by Team FixItHub**
_Empowering repairs, connecting communities_