Salone Freelance is a platform that connects clients and freelancers in Sierra Leone, allowing users to post jobs, find work, and collaborate easily online.
# Salone Freelance 🇸🇱
Salone Freelance is a modern, high-performance marketplace connecting Sierra Leone's best talent with global opportunities. Built with React, Vite, and Tailwind CSS, it features a secure dual-backend architecture using Firebase for Authentication/Real-time Database and Supabase for scalable File Storage.
## Getting Started
Follow these steps to set up the project locally on your machine after downloading or cloning the repository.
### 1. Prerequisites
Ensure you have the following installed:
- Node.js (Version 18 or higher recommended)
- npm (comes with Node.js) or **yarn**
### 2. Install Dependencies
Navigate to the project root directory and run:
```bash
npm install
```
### 3. Environment Setup
The project requires several environment variables to connect to Firebase and Supabase.
1. Create a `.env` file in the root directory:
```bash
touch .env
```
2. Open the `.env` file and paste the following template, replacing the placeholders with your actual credentials from the Firebase and Supabase dashboards:
```env
# Firebase Configuration
VITE_FIREBASE_API_KEY=your_api_key
VITE_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=your_project_id
VITE_FIREBASE_STORAGE_BUCKET=your_project.appspot.com
VITE_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
VITE_FIREBASE_APP_ID=your_app_id
# Supabase Configuration
VITE_SUPABASE_URL=your_supabase_project_url
VITE_SUPABASE_PUBLISHABLE_KEY=your_supabase_anon_key
```
### 4. Database & Storage Rules
For the app to function correctly, ensure your backends are configured:
- **Firebase Auth**: Enable Email/Password authentication.
- **Firebase Firestore**: Set rules to allow authenticated users to read/write their own profiles.
- **Supabase Storage**: Create a public bucket named `app-files` and set RLS policies to allow authenticated uploads.
### 5. Run the Development Server
Start the app locally:
```bash
npm run dev
```
The app will typically be available at `
localhost …