{"id":31956338,"url":"https://github.com/profullstack/tutorlinkup-web","last_synced_at":"2026-01-20T17:38:56.801Z","repository":{"id":318002449,"uuid":"1069628166","full_name":"profullstack/tutorlinkup-web","owner":"profullstack","description":"A marketplace platform connecting individuals who need test-taking services with qualified test-takers, featuring secure cryptocurrency payments.","archived":false,"fork":false,"pushed_at":"2025-10-08T14:25:32.000Z","size":882,"stargazers_count":0,"open_issues_count":3,"forks_count":2,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-08T16:14:35.314Z","etag":null,"topics":["cheating","cryptocurrency","exams","hacktoberfest","hire","javascript","test-takers"],"latest_commit_sha":null,"homepage":"https://tutorlinkup.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/profullstack.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-04T10:02:43.000Z","updated_at":"2025-10-08T14:25:36.000Z","dependencies_parsed_at":"2025-10-08T16:15:40.790Z","dependency_job_id":"bb4eae10-21ed-4aa0-a684-9496e1214197","html_url":"https://github.com/profullstack/tutorlinkup-web","commit_stats":null,"previous_names":["profullstack/hiretesttakers-web","profullstack/tutorlinkup-web"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/profullstack/tutorlinkup-web","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/profullstack%2Ftutorlinkup-web","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/profullstack%2Ftutorlinkup-web/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/profullstack%2Ftutorlinkup-web/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/profullstack%2Ftutorlinkup-web/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/profullstack","download_url":"https://codeload.github.com/profullstack/tutorlinkup-web/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/profullstack%2Ftutorlinkup-web/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279019141,"owners_count":26086685,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cheating","cryptocurrency","exams","hacktoberfest","hire","javascript","test-takers"],"created_at":"2025-10-14T14:48:36.251Z","updated_at":"2025-10-14T14:49:59.571Z","avatar_url":"https://github.com/profullstack.png","language":"JavaScript","readme":"# TutorLinkup.com\n\nA marketplace platform connecting individuals who need test-taking services with qualified test-takers, featuring secure cryptocurrency payments.\n\n## 🎯 Overview\n\nTutorLinkup.com enables users to:\n- **Post test-taking opportunities** with cryptocurrency compensation\n- **Apply to complete tests** and earn cryptocurrency\n- **Communicate securely** between hirers and test-takers\n- **Process payments** using multiple cryptocurrencies via CryptAPI.io\n- **View real-time exchange rates** via Tatum.io\n\n## 🚀 Features\n\n### For Test Hirers\n- Create and manage test listings\n- Set prices in cryptocurrency (single price or range)\n- View USD equivalent pricing\n- Review and manage applicants\n- Direct messaging with applicants\n- Approve/reject applications\n- Process cryptocurrency payments upon completion\n\n### For Test Takers\n- Browse available test opportunities\n- Apply to tests with custom messages\n- Track application status (pending, approved, rejected, hired)\n- View tests in progress and completed\n- Receive cryptocurrency payments\n- Message with hirers\n\n### Platform Features\n- Supabase authentication with email verification\n- Avatar upload and profile management\n- Real-time exchange rate display (crypto to USD/other fiats)\n- Secure cryptocurrency payment processing\n- Application and payment tracking\n- Message history\n\n## 🛠️ Technology Stack\n\n### Frontend\n- **Framework**: SvelteKit\n- **Styling**: TailwindCSS\n- **Language**: JavaScript (ESM, Node.js 20+)\n\n### Backend\n- **Database**: Supabase (PostgreSQL)\n- **Authentication**: Supabase Auth\n- **Storage**: Supabase Storage (avatars)\n- **API Routes**: SvelteKit endpoints\n\n### External Services\n- **Payment Processing**: [CryptAPI.io](https://cryptapi.io)\n- **Exchange Rates**: [Tatum.io](https://tatum.io)\n\n### Development Tools\n- **Package Manager**: pnpm\n- **Testing**: Mocha + Chai\n- **Linting**: ESLint\n- **Formatting**: Prettier\n\n## 📋 Prerequisites\n\n- Node.js 20 or newer\n- pnpm (install via `npm install -g pnpm`)\n- Docker and Docker Compose (for self-hosted Supabase)\n- CryptAPI.io account\n- Tatum.io API key\n\n## 🔧 Installation\n\n**For detailed setup instructions, see [SETUP.md](./SETUP.md)**\n\n### Quick Start\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/yourusername/tutorlinkup-web.git\ncd tutorlinkup-web\n```\n\n2. Install dependencies:\n```bash\npnpm install\n```\n\n3. Set up self-hosted Supabase with Docker:\n```bash\n# Clone Supabase Docker repository\ngit clone --depth 1 https://github.com/supabase/supabase\ncd supabase/docker\n\n# Copy the example environment file\ncp .env.example .env\n\n# Start Supabase services\ndocker compose up -d\n\n# Return to project directory\ncd ../../tutorlinkup-web\n```\n\n4. Run the automated setup script:\n```bash\npnpm run setup\n```\n\nThis will:\n- Copy `.env.example` to `.env`\n- Prompt you for required environment variables\n- Initialize Supabase CLI\n- Run database migrations\n- Set up the database schema\n\nAlternatively, you can set up manually:\n\n```bash\n# Copy environment file\ncp .env.example .env\n\n# Edit .env with your credentials\n# Then initialize Supabase\npnpx supabase init\npnpx supabase db push\n```\n\n## 🚀 Development\n\nStart the development server:\n```bash\npnpm run dev\n```\n\nThe application will be available at `http://localhost:5173`\n\n### Database Management\n\nInitial setup (automated):\n```bash\npnpm run db:setup\n```\n\nExport database (backup):\n```bash\npnpm run db:export\n```\n\nImport database (restore):\n```bash\npnpm run db:import\n```\n\nView Supabase Studio (database UI):\n```bash\n# Supabase Studio is available at http://localhost:8000\n```\n\n## 🧪 Testing\n\nRun tests:\n```bash\npnpm test\n```\n\nRun tests in watch mode:\n```bash\npnpm test:watch\n```\n\nRun tests with coverage:\n```bash\npnpm test:coverage\n```\n\n## 🏗️ Building\n\nBuild for production:\n```bash\npnpm run build\n```\n\nPreview production build:\n```bash\npnpm run preview\n```\n\n## 📁 Project Structure\n\n```\ntutorlinkup-web/\n├── src/\n│   ├── lib/\n│   │   ├── components/     # Svelte components\n│   │   ├── stores/         # Svelte stores\n│   │   ├── utils/          # Utility functions\n│   │   └── services/       # API service modules\n│   ├── routes/             # SvelteKit routes\n│   │   ├── api/            # API endpoints\n│   │   ├── auth/           # Authentication pages\n│   │   ├── tests/          # Test listing pages\n│   │   ├── applications/   # Application pages\n│   │   └── profile/        # User profile pages\n│   └── app.html            # HTML template\n├── supabase/\n│   └── migrations/         # Database migrations\n├── tests/                  # Test files\n├── static/                 # Static assets\n├── PRD.md                  # Product Requirements Document\n├── TODO.md                 # Development task list\n└── README.md               # This file\n```\n\n## 🗄️ Database Schema\n\n### Core Tables\n- **users**: User profiles and authentication\n- **tests**: Test listings created by hirers\n- **applications**: Test taker applications\n- **messages**: Direct messaging between users\n- **payments**: Cryptocurrency payment tracking\n\nSee [PRD.md](./PRD.md) for detailed schema definitions.\n\n## 🔐 Security\n\n- Email verification required for all accounts\n- Row Level Security (RLS) enabled on all tables\n- Secure file uploads with size and type validation\n- Input validation and sanitization\n- Webhook signature verification for payments\n- No storage of private keys or sensitive payment data\n\n## 📚 API Documentation\n\n### CryptAPI.io Integration\n- **Ticker Create**: Generate payment addresses\n- **Webhooks**: Receive payment confirmations\n- **Supported Coins**: BTC, ETH, USDT, and more\n\n### Tatum.io Integration\n- **Exchange Rates**: Real-time crypto to fiat conversion\n- **Supported Pairs**: BTC/USD, ETH/USD, USDT/USD, etc.\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n### Development Guidelines\n- Follow the KISS principle (Keep It Simple, Stupid)\n- Write tests first (TDD approach)\n- Use ESM modules exclusively\n- Follow ESLint and Prettier configurations\n- Create new Supabase migrations (never modify existing ones)\n- Use `pnpx supabase migrations new` for new migrations\n\n## 📝 License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n## 🙏 Acknowledgments\n\n- [Supabase](https://supabase.com) for backend infrastructure\n- [CryptAPI.io](https://cryptapi.io) for payment processing\n- [Tatum.io](https://tatum.io) for exchange rate data\n- [SvelteKit](https://kit.svelte.dev) for the framework\n\n## 📞 Support\n\nFor support, email support@tutorlinkup.com or open an issue in the repository.\n\n## 🗺️ Roadmap\n\nSee [TODO.md](./TODO.md) for current development tasks and [PRD.md](./PRD.md) for future enhancements.\n\n---\n\nBuilt with ❤️ using SvelteKit and Supabase\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprofullstack%2Ftutorlinkup-web","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprofullstack%2Ftutorlinkup-web","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprofullstack%2Ftutorlinkup-web/lists"}