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! ๐
- 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 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 โญ.
- 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 ๐.
- 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/logsfor transparency ๐.
- 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 ๐.
Explore FixItHub's user interface through these screenshots, available in the screenshots/ directory:
- Customer Dashboard: View repair and order summaries ๐ฅ๏ธ.
- Worker Dashboard: Monitor active repairs and product sales ๐.
- Admin Dashboard: System stats and management tools ๐.
- Repair Request Form: Submit repair details with ease ๐ง.
- Product Listing: Browse marketplace products ๐.
| 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 ๐งน |
To run FixItHub locally:
-
Clone the Repository:
git clone https://github.com/AnasHany2193/FixItHub.git cd FixItHub -
Install Dependencies:
npm install
-
Set Up Environment Variables:
- Create a
.envfile 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.
- Create a
-
Start the Application:
- Development mode:
npm run dev
- Production mode:
npm start
- Development mode:
-
Access the Application:
- Open http://localhost:5000 in your browser ๐.
- Sign Up/Login: Register at
/registeror log in at/login. - Request Repairs: Submit details at
/repairs/new๐ง. - Browse Workers: View profiles at
/users/:idto check skills and ratings. - Shop Marketplace: Explore products at
/marketplace/products, add to cart, and purchase ๐. - Track Activity: Monitor repairs at
/repairs/historyand orders at/marketplace/orders. - Leave Reviews: Rate workers and products post-service or purchase โญ.
- Apply as Worker: Submit skills and certifications at
/profile๐ ๏ธ. - Manage Repairs: Accept jobs at
/repairs/auctionsor/repairs/direct-offers. - Sell Products: List items at
/marketplace/new-product. - View Customers: Check profiles at
/users/:id.
- 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๐.
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
We welcome contributions to FixItHub! To get started:
-
Fork the Repository:
git clone https://github.com/AnasHany2193/FixItHub.git
-
Create a Branch:
git checkout -b feature/your-cool-idea
-
Make Changes:
- Write clean, documented code.
- Follow ESLint and Prettier standards.
- Add tests for new features or fixes.
-
Commit Changes:
- Use conventional commits (e.g.,
feat: add new feature,fix: resolve bug).
git commit -m "feat: add my cool idea ๐" - Use conventional commits (e.g.,
-
Submit a Pull Request:
- Push your branch and create a pull request at GitHub Pull Requests.
- Provide a clear description of your changes.
| 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