Skip to content

A marketplace platform connecting individuals who need test-taking services with qualified test-takers, featuring secure cryptocurrency payments.

profullstack/tutorlinkup-web

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

TutorLinkup.com

A marketplace platform connecting individuals who need test-taking services with qualified test-takers, featuring secure cryptocurrency payments.

🎯 Overview

TutorLinkup.com enables users to:

  • Post test-taking opportunities with cryptocurrency compensation
  • Apply to complete tests and earn cryptocurrency
  • Communicate securely between hirers and test-takers
  • Process payments using multiple cryptocurrencies via CryptAPI.io
  • View real-time exchange rates via Tatum.io

πŸš€ Features

For Test Hirers

  • Create and manage test listings
  • Set prices in cryptocurrency (single price or range)
  • View USD equivalent pricing
  • Review and manage applicants
  • Direct messaging with applicants
  • Approve/reject applications
  • Process cryptocurrency payments upon completion

For Test Takers

  • Browse available test opportunities
  • Apply to tests with custom messages
  • Track application status (pending, approved, rejected, hired)
  • View tests in progress and completed
  • Receive cryptocurrency payments
  • Message with hirers

Platform Features

  • Supabase authentication with email verification
  • Avatar upload and profile management
  • Real-time exchange rate display (crypto to USD/other fiats)
  • Secure cryptocurrency payment processing
  • Application and payment tracking
  • Message history

πŸ› οΈ Technology Stack

Frontend

  • Framework: SvelteKit
  • Styling: TailwindCSS
  • Language: JavaScript (ESM, Node.js 20+)

Backend

  • Database: Supabase (PostgreSQL)
  • Authentication: Supabase Auth
  • Storage: Supabase Storage (avatars)
  • API Routes: SvelteKit endpoints

External Services

Development Tools

  • Package Manager: pnpm
  • Testing: Mocha + Chai
  • Linting: ESLint
  • Formatting: Prettier

πŸ“‹ Prerequisites

  • Node.js 20 or newer
  • pnpm (install via npm install -g pnpm)
  • Docker and Docker Compose (for self-hosted Supabase)
  • CryptAPI.io account
  • Tatum.io API key

πŸ”§ Installation

For detailed setup instructions, see SETUP.md

Quick Start

  1. Clone the repository:
git clone https://github.com/yourusername/tutorlinkup-web.git
cd tutorlinkup-web
  1. Install dependencies:
pnpm install
  1. Set up self-hosted Supabase with Docker:
# Clone Supabase Docker repository
git clone --depth 1 https://github.com/supabase/supabase
cd supabase/docker

# Copy the example environment file
cp .env.example .env

# Start Supabase services
docker compose up -d

# Return to project directory
cd ../../tutorlinkup-web
  1. Run the automated setup script:
pnpm run setup

This will:

  • Copy .env.example to .env
  • Prompt you for required environment variables
  • Initialize Supabase CLI
  • Run database migrations
  • Set up the database schema

Alternatively, you can set up manually:

# Copy environment file
cp .env.example .env

# Edit .env with your credentials
# Then initialize Supabase
pnpx supabase init
pnpx supabase db push

πŸš€ Development

Start the development server:

pnpm run dev

The application will be available at http://localhost:5173

Database Management

Initial setup (automated):

pnpm run db:setup

Export database (backup):

pnpm run db:export

Import database (restore):

pnpm run db:import

View Supabase Studio (database UI):

# Supabase Studio is available at http://localhost:8000

πŸ§ͺ Testing

Run tests:

pnpm test

Run tests in watch mode:

pnpm test:watch

Run tests with coverage:

pnpm test:coverage

πŸ—οΈ Building

Build for production:

pnpm run build

Preview production build:

pnpm run preview

πŸ“ Project Structure

tutorlinkup-web/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ lib/
β”‚   β”‚   β”œβ”€β”€ components/     # Svelte components
β”‚   β”‚   β”œβ”€β”€ stores/         # Svelte stores
β”‚   β”‚   β”œβ”€β”€ utils/          # Utility functions
β”‚   β”‚   └── services/       # API service modules
β”‚   β”œβ”€β”€ routes/             # SvelteKit routes
β”‚   β”‚   β”œβ”€β”€ api/            # API endpoints
β”‚   β”‚   β”œβ”€β”€ auth/           # Authentication pages
β”‚   β”‚   β”œβ”€β”€ tests/          # Test listing pages
β”‚   β”‚   β”œβ”€β”€ applications/   # Application pages
β”‚   β”‚   └── profile/        # User profile pages
β”‚   └── app.html            # HTML template
β”œβ”€β”€ supabase/
β”‚   └── migrations/         # Database migrations
β”œβ”€β”€ tests/                  # Test files
β”œβ”€β”€ static/                 # Static assets
β”œβ”€β”€ PRD.md                  # Product Requirements Document
β”œβ”€β”€ TODO.md                 # Development task list
└── README.md               # This file

πŸ—„οΈ Database Schema

Core Tables

  • users: User profiles and authentication
  • tests: Test listings created by hirers
  • applications: Test taker applications
  • messages: Direct messaging between users
  • payments: Cryptocurrency payment tracking

See PRD.md for detailed schema definitions.

πŸ” Security

  • Email verification required for all accounts
  • Row Level Security (RLS) enabled on all tables
  • Secure file uploads with size and type validation
  • Input validation and sanitization
  • Webhook signature verification for payments
  • No storage of private keys or sensitive payment data

πŸ“š API Documentation

CryptAPI.io Integration

  • Ticker Create: Generate payment addresses
  • Webhooks: Receive payment confirmations
  • Supported Coins: BTC, ETH, USDT, and more

Tatum.io Integration

  • Exchange Rates: Real-time crypto to fiat conversion
  • Supported Pairs: BTC/USD, ETH/USD, USDT/USD, etc.

🀝 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

Development Guidelines

  • Follow the KISS principle (Keep It Simple, Stupid)
  • Write tests first (TDD approach)
  • Use ESM modules exclusively
  • Follow ESLint and Prettier configurations
  • Create new Supabase migrations (never modify existing ones)
  • Use pnpx supabase migrations new for new migrations

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

πŸ“ž Support

For support, email [email protected] or open an issue in the repository.

πŸ—ΊοΈ Roadmap

See TODO.md for current development tasks and PRD.md for future enhancements.


Built with ❀️ using SvelteKit and Supabase

About

A marketplace platform connecting individuals who need test-taking services with qualified test-takers, featuring secure cryptocurrency payments.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •