Skip to content

404khai/HireCraft-SpringBoot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

100 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HireCraft Spring Boot Application

HireCraft is a comprehensive domestic service marketplace connecting clients with skilled artisans (electricians, plumbers, etc.) for various tasks. The platform ensures secure transactions, real-time communication, and a seamless booking experience.

Features

  • User Management: Separate profiles for Clients and Service Providers (Artisans).
  • Service Discovery: Clients can find artisans based on skills and ratings.
  • Booking System: Secure booking flow with status tracking (Pending, In Progress, Completed, etc.).
  • Secure Payments: Integrated with Stripe and Paystack for flexible payment options, including escrow and split payments.
  • Real-time Messaging: WebSocket-based chat for instant communication between clients and providers.
  • Reviews & Ratings: Trust-building system through verified user reviews.
  • Notifications: Real-time updates on bookings and messages.
  • File Management: Cloudinary integration for profile pictures and document uploads.

Tech Stack

  • Backend: Java 17, Spring Boot 3.4.5
  • Database: PostgreSQL
  • Migration: Flyway
  • Security: Spring Security with JWT Authentication
  • Payments: Stripe, Paystack
  • Real-time: WebSocket (STOMP)
  • Storage: Cloudinary
  • Build Tool: Maven

Prerequisites

  • Java Development Kit (JDK) 17 or higher
  • Maven 3.8+
  • PostgreSQL 14+

Configuration

The application requires a configuration file to run. Create a application.properties file in src/main/resources with the following settings:

# Server Configuration
server.port=8080

# Database Configuration
spring.datasource.url=jdbc:postgresql://localhost:5432/hirecraft_db
spring.datasource.username=your_db_username
spring.datasource.password=your_db_password
spring.jpa.hibernate.ddl-auto=validate

# JWT Security
# Ensure this key is long and secure
app.jwt-secret=your_super_secret_jwt_key_base64_encoded_preferred
app.jwt-expiration-milliseconds=86400000

# Cloudinary Configuration (File Uploads)
cloudinary.cloud-name=your_cloud_name
cloudinary.api-key=your_api_key
cloudinary.api-secret=your_api_secret

# Paystack Configuration (Payments)
paystack.test.secret.key=your_paystack_secret_key
paystack.base.url=https://api.paystack.co

# Stripe Configuration (Payments)
stripe.secret.key=your_stripe_secret_key

# Fee Configuration
hirecraft.payment.platform-fee-percentage=10
hirecraft.payment.currency=usd
hirecraft.payment.minimum-amount=10

Getting Started

  1. Clone the repository:

    git clone <repository-url>
    cd HireCraft-SpringBoot
  2. Set up the database: Create a PostgreSQL database named hirecraft_db.

  3. Configure the application: Create src/main/resources/application.properties using the template above and fill in your credentials.

  4. Run the application:

    ./mvnw spring-boot:run

    Or build the JAR:

    ./mvnw clean package
    java -jar target/Ecommerce-0.0.1-SNAPSHOT.jar
  5. Access the API: The API will be available at http://localhost:8080.

Database Migrations

This project uses Flyway for database migrations. Migrations are located in src/main/resources/db/migration and will be applied automatically on startup.

  • V1: Schema creation
  • V2: Seed roles and permissions
  • V3: Seed admin user (admin@securetasker.com)
  • V4: Add location data

Contributing

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

About

The backend logic of HireCraft service marketplace application built on Java SpringBoot

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages