Skip to content

SnapHive is a modern, scalable, and user-friendly platform that seamlessly connects users with verified professionals for hassle-free service booking.

License

Notifications You must be signed in to change notification settings

deepakcode21/snaphive-services

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

57 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SnapHive Services – Redefining Professional Service Booking!

Your Gateway to Professional Services πŸš€

SnapHive is a modern, scalable, and user-friendly platform that seamlessly connects users with verified professionals for hassle-free service booking. Whether you’re a customer seeking services, a professional managing bookings, or an admin overseeing operations, SnapHive has got you covered!

🌐 Live Demo

πŸ–ΌοΈ UI Preview

Screenshot 1 Screenshot 2 Screenshot 3
Screenshot 4 Screenshot 5 Screenshot 6
Screenshot 7 Screenshot 8 Screenshot 9
Screenshot 10 Screenshot 11 Screenshot 12
Screenshot 13 Screenshot 14 Screenshot 15

🎯 Project Overview

SnapHive is designed to simplify the process of booking professional services with an intuitive and efficient workflow. It operates with three distinct roles:

πŸ‘€ Users

  • Browse services without an account.
  • Sign up / Log in to book services.
  • Book professionals based on availability, date, and time slots.
  • Secure online payments via Razorpay.
  • Manage profiles, including age, address, profile picture, and gender.

πŸ‘¨β€πŸ’Ό Admins

  • Add professionals to the platform.
  • Oversee bookings, users, and professionals.
  • Modify professional availability and cancel bookings.
  • View real-time analytics on bookings and earnings.

πŸ‘©β€πŸ”§ Professionals

  • Update availability and profile details (e.g., fees, address, service description).
  • View and manage bookings.
  • Track total earnings, clients, and bookings.
  • Cancel or mark bookings as complete.

✨ Key Features

For Users

βœ… Browse services without logging in.
βœ… Book services with real-time availability checks.
βœ… Secure online payments via Razorpay.
βœ… Manage bookings and update profiles.

For Admins

βœ… Add and manage professionals.
βœ… Oversee all bookings and user activity.
βœ… Modify professional availability and cancel bookings.

For Professionals

βœ… Update availability and service details.
βœ… View and manage bookings.
βœ… Track earnings and client history.

πŸ› οΈ Technologies Used

Frontend

  • React.js (Frontend framework)
  • TailwindCSS (Styling)
  • Framer Motion (Animations)
  • React Router DOM (Routing)
  • Axios (API Handling)
  • React Toastify (Notifications)

Backend

  • Node.js (Runtime environment)
  • Express.js (Backend framework)
  • MongoDB (Database)
  • Mongoose (ODM for MongoDB)
  • JWT (Authentication)
  • Multer & Cloudinary (File uploads)
  • Razorpay (Payment gateway)

πŸ“₯ Installation Guide

Frontend Setup

# Clone the repository  
git clone https://github.com/deepakcode21/snaphive-services.git
cd frontend  

# Install dependencies  
npm install  

# Set up environment variables (.env file)  
VITE_BACKEND_URL= ''
VITE_RAZORPAY_KEY_ID = ''

# Run the project  
npm run dev  

Admin Setup

cd admin  

# Install dependencies  
npm install  

# Set up environment variables (.env file)  
VITE_BACKEND_URL = ''
VITE_CURRENCY = ''

# Run the project  
npm run dev  

Backend Setup

cd backend  

# Install dependencies  
npm install  

# Set up environment variables (.env file)  
MONGODB_URI = ''
CLOUDINARY_NAME = ''
CLOUDINARY_API_KEY = ''
CLOUDINARY_SECRET_KEY = ''
ADMIN_EMAIL = ''
ADMIN_PASSWORD = ''
JWT_SECRET = ''
RAZORPAY_KEY_ID = ''
RAZORPAY_KEY_SECRET = ''
CURRENCY = ''

# Start the server  
node server.js  

πŸ–₯️ Usage

For Users

  • Explore services and book professionals.
  • Manage bookings and update profiles.

For Admins

  • Add professionals and manage bookings.
  • View analytics and user activity.

For Professionals

  • Update availability and manage bookings.
  • Track earnings and client history.

Detailed Flow Diagrams

1. User Flow

%%{init: {'themeVariables': {'fontSize': '12px'}}}%%
graph TD
    A[User Visits SnapHive] --> B[Explore Services]
    B --> C{Logged In?}
    C -->|No| D[Sign Up / Log In]
    C -->|Yes| E[View Professional List]
    E --> F[Select Professional]
    F --> G[Check Availability]
    G --> H{Available?}
    H -->|Yes| I[Book Service]
    H -->|No| J[Choose Another Slot/Professional]
    I --> K[Proceed to Payment]
    K --> L[Payment via Razorpay]
    L --> M[Booking Confirmed]
    M --> N[View Booking Details]
    N --> O[Manage Bookings]
    O --> P[Cancel Booking or Update Profile]

Loading

2. Admin Flow

graph TD
    A[Admin Logs In] --> B[Admin Dashboard]
    B --> C[Add New Professional]
    C --> D[Professional Added Successfully]
    B --> E[View All Professionals]
    E --> F[Edit Professional Details]
    B --> G[View All Bookings]
    G --> H[Cancel Booking]
    B --> I[View All Users]
    I --> J[Manage User Accounts]
    B --> K[Analytics & Reports]
    K --> L[View Earnings, Bookings, and Trends]
Loading

3. Professional Flow

graph TD
    A[Professional Logs In] --> B[Professional Dashboard]
    B --> C[Update Availability]
    C --> D[Availability Updated Successfully]
    B --> E[View Bookings]
    E --> F[Cancel Booking]
    E --> G[Mark Booking as Complete]
    B --> H[Update Profile Details]
    H --> I[Profile Updated Successfully]
    B --> J[View Earnings & Analytics]
    J --> K[Track Total Earnings, Clients, and Bookings]
Loading

Global Flow Diagram

This diagram shows how Users, Admins, and Professionals interact within the SnapHive ecosystem.

graph TD
    subgraph User
        A[User Visits SnapHive] --> B[Explore Services]
        B --> C{Logged In?}
        C -->|No| D[Sign Up / Log In]
        C -->|Yes| E[View Professional List]
        E --> F[Select Professional]
        F --> G[Check Availability]
        G --> H{Available?}
        H -->|Yes| I[Book Service]
        H -->|No| J[Choose Another Slot/Professional]
        I --> K[Proceed to Payment]
        K --> L[Payment via Razorpay]
        L --> M[Booking Confirmed]
        M --> N[View Booking Details]
        N --> O[Manage Bookings]
        O --> P[Cancel Booking or Update Profile]
    end

    subgraph Admin
        Q[Admin Logs In] --> R[Admin Dashboard]
        R --> S[Add New Professional]
        S --> T[Professional Added Successfully]
        R --> U[View All Professionals]
        U --> V[Edit Professional Details]
        R --> W[View All Bookings]
        W --> X[Cancel Booking]
        R --> Y[View All Users]
        Y --> Z[Manage User Accounts]
        R --> AA[Analytics & Reports]
        AA --> AB[View Earnings, Bookings, and Trends]
    end

    subgraph Professional
        AC[Professional Logs In] --> AD[Professional Dashboard]
        AD --> AE[Update Availability]
        AE --> AF[Availability Updated Successfully]
        AD --> AG[View Bookings]
        AG --> AH[Cancel Booking]
        AG --> AI[Mark Booking as Complete]
        AD --> AJ[Update Profile Details]
        AJ --> AK[Profile Updated Successfully]
        AD --> AL[View Earnings & Analytics]
        AL --> AM[Track Total Earnings, Clients, and Bookings]
    end

    %% Connections Between Roles
    M -->|Booking Data| W
    S -->|Professional Data| F
    AG -->|Booking Updates| M
    X -->|Booking Cancellation| M
Loading

Explanation of the Global Flow

  1. User Interaction:

    • Users explore services, book professionals, and manage their bookings.
    • Bookings are confirmed after payment via Razorpay.
  2. Admin Interaction:

    • Admins add professionals, manage bookings, and oversee user activity.
    • Admins can cancel bookings or modify professional availability.
  3. Professional Interaction:

    • Professionals update their availability, manage bookings, and track earnings.
    • They can mark bookings as complete or cancel them.
  4. Interconnected Workflow:

    • Bookings are shared across all roles (User, Admin, Professional).
    • Professional availability is managed by Admins and updated by Professionals.
    • Payment and booking confirmations are reflected in real-time across the platform.

This detailed and global flow diagram provides a comprehensive overview of how SnapHive operates. It’s clean, modern, and easy to understand, making it perfect for your README.md file. Let me know if you need further refinements! πŸš€

🀝 Contributing

We welcome contributions! Follow these steps to contribute:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature/YourFeatureName).
  3. Commit your changes (git commit -m 'Add some feature').
  4. Push to the branch (git push origin feature/YourFeatureName).
  5. Open a pull request.

πŸ“œ License

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

πŸ™ Credits

  • Deepak (ArrowMax): Project Developer
  • Razorpay: Payment Gateway Integration
  • Cloudinary: File Uploads
  • TailwindCSS: Styling Framework
  • MongoDB: Database Store Data

πŸ“§ Contact

For questions or feedback, reach out at:

About

SnapHive is a modern, scalable, and user-friendly platform that seamlessly connects users with verified professionals for hassle-free service booking.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages