Skip to content

KayKay341/printloco

Repository files navigation

Printloco - Freelance Service Marketplace

A production-ready MVP web application for a service-based marketplace connecting customers with professional freelancers across various categories (Design, Programming, Writing, etc.).

🚀 Features

Core Concept

  • Service-first: Focused on professional digital and creative services.
  • Automated Matching: System connects requests with the best-suited freelancers automatically.
  • Instant Quoting: Users get immediate price estimates based on service parameters and expertise levels.
  • Simple: Abstracted complexity for non-technical users.

User Roles

Customer

  • Post service requests with detailed descriptions and reference files.
  • Select expertise levels (Beginner to Pro) and project complexity.
  • Get instant quotes and delivery timelines.
  • Track hired projects through completion.

Freelancer

  • Create professional profiles with bios, skills, and base rates.
  • Manage availability and portfolio.
  • Receive automatically matched jobs in a dedicated queue.
  • Deliver work and manage revisions.

System Features

Universal Pricing Engine

  • Factors: service category, expertise level, complexity, urgency, and revisions.
  • Returns instant estimates in cents precision with platform fee calculation.

Smart Routing System

  • Automatically detects required service category from project descriptions.
  • Matches jobs with available freelancers based on skills and ratings.
  • Assigns jobs instantly to optimize delivery speed.

Project Lifecycle

  • Pending → Assigned → In Progress → Completed → Failed → Reassigned

🛠️ Tech Stack

  • Frontend: Next.js 14 (App Router), Tailwind CSS
  • Backend: Node.js with Next.js API Routes
  • Database: PostgreSQL with Prisma ORM
  • Authentication: JWT-based (MVP implementation)

📁 Project Structure

printloco/
├── app/                    # Next.js app directory
│   ├── api/               # API routes
│   │   ├── auth/          # Authentication endpoints
│   │   ├── freelancers/   # Freelancer profile management
│   │   ├── jobs/          # Service request and job management
│   │   └── orders/        # Order and payment processing
│   ├── components/        # Reusable UI components
│   ├── dashboard/         # Unified user dashboard
│   ├── make-request/      # Service request creation flow
│   ├── freelancer-profile/# Freelancer profile management UI
│   ├── job-queue/         # Freelancer work queue
│   ├── my-orders/         # Customer project tracking
│   └── order-confirmation/# Hire confirmation and details
├── lib/                   # Utility functions and services
│   ├── prisma.ts          # Prisma client singleton
│   └── services.ts        # Pricing engine and matching logic
├── prisma/                # Prisma schema and migrations
│   └── schema.prisma      # Database schema
├── public/                # Static assets
└── package.json           # Dependencies and scripts

🗄️ Database Schema

Users

  • id, email, name, role (CUSTOMER, FREELANCER, ADMIN), rating

FreelancerProfiles

  • id, userId, bio, skills (JSON), portfolio (JSON), baseRate, availability, rating

Jobs

  • id, inputType (FILE/TEXT), fileUrl, description, serviceCategory, status, price, estimatedDays, customer/freelancer relations, requirements (JSON)

Orders

  • id, jobId, paymentStatus, amount, userId

⚙️ Setup Instructions

Prerequisites

  • Node.js 18+
  • PostgreSQL database
  • npm or yarn

Installation

  1. Clone the repository
git clone <repository-url>
cd printloco
  1. Install dependencies
npm install
  1. Set up environment variables Create a .env file in the root directory:
DATABASE_URL="postgresql://username:password@localhost:5432/printloco"
JWT_SECRET="your-secret-key-here"
  1. Run database migrations
npx prisma migrate dev
  1. Start the development server
npm run dev
  1. Open http://localhost:3000 in your browser

📝 Design Principles

  1. Automation: System handles freelancer assignment to reduce friction.
  2. Speed: Instant quotes enable faster decision-making for customers.
  3. Simplicity: Clean, modern interfaces that hide marketplace complexity.
  4. Scalability: Data model allows adding new service categories without code changes.

Built with Gemini CLI

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors