Logo Lanfrica

bereket-09/EthioLance

Domaine:

digital infrastructuresocioeconomic

Type de record:

software
Créateur:
ber
Hôte:
EthioLance — a freelance marketplace for Ethiopian professionals (React + Node/Express + Prisma/PostgreSQL, Socket.io, Chapa escrow, Telegram job-alert bot) # EthioLance — Freelance Marketplace for Ethiopian Professionals A cross-platform freelance marketplace connecting Ethiopian freelancers with clients: role-based auth, profiles & portfolios, job posting, proposals, milestone-based **escrow** contracts, real-time messaging, ratings & reviews, dispute resolution, and an admin console. Built from the project SRS (`G 6.pdf`). > This run targets the **web app + backend**. Mobile (React Native) is deferred. External services > (Chapa payments, Cloudinary media) use **mock adapters** by default and become live by setting env vars. ## Stack | Layer | Tech | |---|---| | Web | React 18, Vite, TypeScript, Tailwind CSS, TanStack Query, React Router | | API | Node.js, Express, TypeScript, Prisma, Socket.io | | DB | PostgreSQL (Docker) | | Auth | Custom JWT (access + refresh), role-based (Freelancer / Client / Admin) | | Payments / Media | Chapa / Cloudinary adapters (mock by default) | Monorepo (pnpm workspaces): `apps/api`, `apps/web`, `packages/shared`. ## Quick start ```bash # 1. Install pnpm install # 2. Start Postgres (Docker) pnpm db:up # 3. Configure env (defaults work out of the box) cp .env.example .env # 4. Create schema + seed demo data pnpm db:migrate pnpm db:seed # 5. Run API (:4000) + Web (:5173) together pnpm dev ``` Then open **http://localhost:5173**. One-shot setup: `pnpm setup` (install → db up → migrate → seed). ## Demo accounts — password `Password123` | Role | Email | |---|---| | Admin | `admin@ethiolance.com` | | Freelancer | `huda@ethiolance.com` (+ meba@, helina@, ruhama@, dawit@, selam@, yonas@, and 7 more) | | Client | `biniyam@ethiolance.com` (+ sara@, michael@, rahel@, tewodros@, meron@, daniel@) | The database seeds a full, realistic marketplace: **14 freelancers** with detailed profiles & portfolios, **7 client companies**, **28 jobs**, **79 proposals**, **8 escrow contracts**, reviews, messages, and notifications — so every screen looks populated out of the box. ## Channels - **Web ap …

Languages