Leofolio is a privacy-first freelancer platform built on Aleo blockchain technology. It enables freelancers to store their credentials, work history, and payment information privately while allowing them to selectively share verifiable proofs with potential employers through zero-knowledge proofs.
- Private Credential Management: Store educational and professional credentials securely
- Work History Privacy: Maintain a private record of your professional experience
- Zero-Knowledge Proofs: Generate verifiable proofs without revealing sensitive information
- Secure Payments: Receive payments privately through blockchain technology
- Professional Devfolio: Showcase your skills with privacy controls
- Project Management: Track and manage client projects efficiently
- Verified Talent: Find freelancers with cryptographically verified credentials
- Project Management: Create, assign, and track projects with ease
- Secure Payments: Process invoices with privacy-preserving technology
- Team Collaboration: Communicate and collaborate securely
- Performance Analytics: Generate detailed project reports and analytics
- Frontend: Next.js, React, TypeScript, Tailwind CSS
- Blockchain: Aleo (privacy-focused blockchain)
- Authentication: Wallet-based authentication
- UI Components: shadcn/ui
- Icons: Lucide React
- State Management: React Context API
- Styling: Tailwind CSS with custom theming
- Node.js 18.x or higher
- npm or yarn
- An Aleo-compatible wallet (e.g., Leo Wallet)
- Clone the repository:
git clone https://github.com/Minimask-labs/Leofolio.git
cd Leofolio- Install dependencies:
npm install
# or
yarn install- Set up environment variables:
cp .env.example .env.localEdit .env.local with your configuration values.
- Run the development server:
npm run dev
# or
yarn dev- Open http://localhost:3000 in your browser to see the application.
Leofolio/
├── app/ # Next.js app directory
│ ├── layout.tsx # Root layout
│ ├── page.tsx # Home page
│ └── ... # Other pages
├── components/ # React components
│ └── ... # components
├── lib/ # Utility functions
├── public/ # Static assets
├── styles/ # Global styles
├── types/ # TypeScript type definitions
├── next.config.js # Next.js configuration
├── tailwind.config.js # Tailwind CSS configuration
├── tsconfig.json # TypeScript configuration
└── package.json # Project dependencies
- Sign Up: Connect your wallet and create a freelancer account
- Add Credentials: Securely store your educational and professional credentials
- Build Your Profile: Create your professional Devfolio
- Generate Proofs: Create zero-knowledge proofs to verify your credentials without revealing sensitive data
- Find Projects: Browse available projects and apply with your verified credentials
- Manage Projects: Track progress, communicate with clients, and receive payments
- Sign Up: Connect your wallet and create an employer account
- Find Talent: Browse the directory of verified freelancers
- Create Projects: Define project requirements, milestones, and deadlines
- Hire Freelancers: Verify credentials and hire talent
- Manage Projects: Track progress, communicate with team members, and process payments
- Generate Reports: Create detailed project reports and analytics
Leofolio enables a secure and transparent job process powered by Aleo smart contracts.
Function: create_job(job_id, payment_amount, escrow_address)
Web Interface:
-
Employer fills a form with:
- Job ID (
u64) - Payment amount in Aleo credits (
u64) - Escrow address (
address)
- Job ID (
What Happens:
- Validates that payment is positive
- Creates a job record with status
Open - Transfers funds to contract escrow
- Stores job details on-chain
User Experience:
- Wallet prompts to approve transaction
- Confirmation shown
- Job appears in Open Jobs
Function: accept_job(job_id)
Web Interface:
- Freelancer clicks Accept on job listing
- Confirms via wallet
What Happens:
- Contract verifies job is
Open - Assigns freelancer's address
- Updates status to
In Progress
User Experience:
- Job appears under My Jobs
- Communication tools enabled
Function: complete_job(job_id)
Web Interface:
- Freelancer clicks Mark as Complete
- Optionally uploads deliverables
- Confirms via wallet
What Happens:
- Verifies caller is the assigned freelancer
- Updates status to
Completed
User Experience:
- Job moves to Pending Payment
- Employer is notified
Function: release_payment(job_id, freelancer, amount)
Web Interface:
- Employer reviews job
- Clicks Release Payment
- Confirms recipient and amount
- Approves in wallet
What Happens:
- Funds transferred from escrow to freelancer
- Updates status to
Paid
User Experience:
- Payment confirmation displayed
- Job marked as completed
Leofolio leverages Aleo's blockchain technology to provide:
- Zero-Knowledge Proofs: Verify credentials without revealing the underlying data
- Private Transactions: Process payments with privacy-preserving technology
- Encrypted Storage: Secure storage of sensitive information
- Selective Disclosure: Control what information is shared and with whom
- Verifiable Credentials: Cryptographically verify the authenticity of credentials
We welcome contributions to Leofolio! Please follow these steps:
- Fork the repository
- Create a new branch (
git checkout -b feature/amazing-feature) - Make your changes
- Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Please read our Contributing Guidelines for more details.
This project is licensed under the MIT License - see the LICENSE file for details.
- Project Lead: Kufre-abasi Bassey - @KufreabasiBass1 - kufreabasibassey3@gmail.com
- Project Website: https://leofolio.minimasklabs.xyz/
Built with ❤️ on Aleo