Skip to content

Tech-Care-Rwanda/tech-care

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

132 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Tech-Care Platform

Connect customers with qualified technicians through a streamlined booking system

Tech Stack License Status

Tech-Care is a comprehensive platform designed to bridge the gap between customers seeking technical services and qualified technicians in Rwanda. Our platform provides a stable, end-to-end experience where customers can easily find, view, and book technicians, while providing technicians with effective tools to manage their bookings and profiles.

Tech-Care Platform Demo

Click above to watch our platform demo video

๐Ÿš€ Quick Start

Prerequisites

  • Node.js 18+
  • npm or yarn
  • Supabase account
  • Google Maps API key

Installation

  1. Clone the repository

    git clone https://github.com/Tech-Care-Rwanda/tech-care.git
    cd tech-care
  2. Install dependencies

    # Install root dependencies
    npm install
    
    # Install frontend dependencies
    cd frontend
    npm install
    
    # Install backend dependencies
    cd ../backend
    npm install
    cd ..
  3. Environment Setup

    Create .env.local in the frontend directory:

    NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
    NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
    NEXT_PUBLIC_GOOGLE_MAPS_API_KEY=your_google_maps_api_key

    Create .env in the backend directory:

    SUPABASE_URL=your_supabase_url
    SUPABASE_SERVICE_KEY=your_supabase_service_key
    PORT=3001
  4. Database Setup

    Set up your Supabase database with the following tables:

    • users - Customer and technician profiles
    • technician_details - Extended technician information
    • bookings - Service bookings and requests
    • services - Available service types
    • categories - Service categories
  5. Start Development Servers

    # Terminal 1: Start backend server
    cd backend
    npm run dev
    
    # Terminal 2: Start frontend server
    cd frontend
    npm run dev
  6. Access the Application

๐Ÿ—๏ธ Architecture

System Overview

Tech-Care utilizes a modern monorepo architecture with clear separation between frontend and backend services.

tech-care/
โ”œโ”€โ”€ frontend/          # Next.js 15 + React 19 application
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ app/       # Next.js App Router pages
โ”‚   โ”‚   โ”œโ”€โ”€ components/ # Reusable UI components
โ”‚   โ”‚   โ”œโ”€โ”€ lib/       # Utilities, services, and contexts
โ”‚   โ”‚   โ””โ”€โ”€ types/     # TypeScript type definitions
โ”‚   โ””โ”€โ”€ public/        # Static assets
โ”œโ”€โ”€ backend/           # Express.js server
โ”‚   โ”œโ”€โ”€ services/      # Supabase integration services
โ”‚   โ”œโ”€โ”€ uploads/       # File upload storage
โ”‚   โ””โ”€โ”€ server.js      # Express server configuration
โ””โ”€โ”€ package.json       # Root package configuration

Tech Stack

Frontend

  • Framework: Next.js 15 with Turbopack
  • UI Library: React 19 with TypeScript 5
  • Styling: Tailwind CSS + Radix UI
  • Mapping: Google Maps API + Leaflet
  • State Management: React Context + Supabase client
  • Authentication: Supabase Auth

Backend

  • Server: Express.js (minimal)
  • Database: Supabase (PostgreSQL)
  • File Upload: Multer middleware
  • Security: CORS + Helmet

Database

  • Provider: Supabase
  • Type: PostgreSQL with Row Level Security (RLS)
  • Features: Real-time subscriptions, Auth integration

๐ŸŽฏ Features

For Customers

  • ๐Ÿ—บ๏ธ Interactive Map - Find technicians on an interactive map with real-time locations
  • ๐Ÿ” Smart Search - Filter technicians by specialization, rating, and availability
  • ๐Ÿ‘ค Detailed Profiles - View comprehensive technician profiles with certifications
  • ๐Ÿ“… Easy Booking - Streamlined booking process with status tracking
  • ๐Ÿ“ฑ Responsive Design - Works seamlessly on desktop and mobile devices
  • ๐Ÿ”” Real-time Updates - Get instant notifications on booking status changes

For Technicians

  • ๐Ÿ“Š Dashboard - Comprehensive dashboard showing earnings and booking statistics
  • โœ… Booking Management - Accept or decline booking requests with one click
  • ๐Ÿ“ Profile Management - Update profile information, upload certificates
  • ๐Ÿ’ฐ Earnings Tracking - Track monthly earnings and completed jobs
  • ๐Ÿ“ธ Media Upload - Upload profile pictures and certification documents
  • ๐Ÿ“ Location Services - Manage service areas and availability

Platform Features

  • ๐Ÿ” Role-based Authentication - Separate customer and technician experiences
  • ๐Ÿ›ก๏ธ Security - Row Level Security policies and secure file uploads
  • โšก Performance - Optimized with Next.js 15 and Turbopack
  • ๐Ÿ“Š Analytics - Built-in analytics for tracking platform usage
  • ๐ŸŒ API-First - RESTful API design for future mobile apps

๐Ÿ“ฑ User Interface

Customer Journey

  1. Browse Technicians - View available technicians on interactive map
  2. Filter & Search - Use filters to find the right technician
  3. View Profile - Check technician details, ratings, and certifications
  4. Book Service - Complete booking with service details
  5. Track Status - Monitor booking progress in real-time

Technician Journey

  1. Registration - Sign up with professional details and certifications
  2. Profile Setup - Complete profile with specializations and rates
  3. Receive Requests - Get notified of new booking requests
  4. Manage Bookings - Accept, decline, or update booking status
  5. Track Earnings - Monitor income and performance metrics

๐Ÿ› ๏ธ Development

Project Structure

frontend/src/
โ”œโ”€โ”€ app/                    # Next.js App Router
โ”‚   โ”œโ”€โ”€ api/               # API routes
โ”‚   โ”œโ”€โ”€ book/              # Booking pages
โ”‚   โ”œโ”€โ”€ dashboard/         # User dashboards
โ”‚   โ”œโ”€โ”€ technician/        # Technician profiles
โ”‚   โ””โ”€โ”€ layout.tsx         # Root layout
โ”œโ”€โ”€ components/            # UI Components
โ”‚   โ”œโ”€โ”€ auth/              # Authentication components
โ”‚   โ”œโ”€โ”€ booking/           # Booking-related components
โ”‚   โ”œโ”€โ”€ layout/            # Layout components
โ”‚   โ”œโ”€โ”€ maps/              # Map components
โ”‚   โ””โ”€โ”€ ui/                # Base UI components
โ”œโ”€โ”€ lib/                   # Utilities & Services
โ”‚   โ”œโ”€โ”€ contexts/          # React contexts
โ”‚   โ”œโ”€โ”€ hooks/             # Custom React hooks
โ”‚   โ”œโ”€โ”€ services/          # API services
โ”‚   โ””โ”€โ”€ utils/             # Utility functions
โ””โ”€โ”€ types/                 # TypeScript definitions

Available Scripts

Frontend

npm run dev          # Start development server
npm run build        # Build for production
npm run start        # Start production server
npm run lint         # Run ESLint
npm run format       # Format code with Prettier

Backend

npm run dev          # Start development server with nodemon
npm run start        # Start production server
npm run build        # No-op build command

Environment Variables

Frontend (.env.local)

NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
NEXT_PUBLIC_GOOGLE_MAPS_API_KEY=your_google_maps_api_key

Backend (.env)

SUPABASE_URL=your_supabase_project_url
SUPABASE_SERVICE_KEY=your_supabase_service_role_key
PORT=3001

๐Ÿ—„๏ธ Database Schema

Core Tables

users

  • Stores both customers and technicians
  • Includes authentication and basic profile info
  • Role-based access control

technician_details

  • Extended technician information
  • Specializations, certifications, rates
  • Availability and location data

bookings

  • Service requests and bookings
  • Status tracking and pricing
  • Customer-technician relationships

services & categories

  • Service type definitions
  • Categorized service offerings

Row Level Security (RLS)

All tables implement RLS policies ensuring:

  • Users can only access their own data
  • Technicians can view relevant booking information
  • Anonymous users can browse technicians and create bookings

๐Ÿš€ Deployment

Supabase Setup

  1. Create a new Supabase project
  2. Run the database migrations
  3. Configure RLS policies
  4. Set up file storage buckets
  5. Configure authentication providers

Frontend Deployment (Vercel)

# Build and deploy to Vercel
npm run build
vercel --prod

Backend Deployment (Railway/Render)

# Deploy backend to Railway or Render
railway up
# or
render deploy

๐Ÿงช Testing

Running Tests

# Run frontend tests
cd frontend
npm test

# Run e2e tests (if configured)
npm run test:e2e

Test Structure

  • Unit Tests - Component and utility function tests
  • Integration Tests - API endpoint and service tests
  • E2E Tests - Full user workflow tests

๐Ÿ“Š Performance

Optimization Features

  • Next.js 15 - Latest optimizations and Turbopack
  • Image Optimization - Automatic image optimization
  • Code Splitting - Automatic route-based code splitting
  • Bundle Analysis - Built-in bundle analyzer
  • Caching - Supabase query caching and React Query

Performance Metrics

  • Lighthouse Score - 90+ on all metrics
  • Core Web Vitals - Excellent ratings
  • Bundle Size - Optimized for fast loading

๐Ÿค Contributing

We welcome contributions! Please follow these steps:

  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

Code Style

  • Use TypeScript for all new code
  • Follow existing code formatting (Prettier)
  • Write meaningful commit messages
  • Add tests for new features

๐Ÿ“„ License

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

๐Ÿ‘ฅ Team

  • ChristianTonny - Lead Developer & Architecture
  • devark28 - Frontend Specialist
  • Mbonyumugisha-Prince - Full-Stack Developer
  • isamuella - Quality Assurance

๐Ÿ†˜ Support

If you have any questions or issues:

  1. Check the Issues page
  2. Create a new issue with detailed information
  3. Contact the development team

๐Ÿ›ฃ๏ธ Roadmap

Phase 1 - Current (Completed)

  • โœ… User authentication and profiles
  • โœ… Technician discovery and booking
  • โœ… Interactive mapping
  • โœ… Booking management

Phase 2 - Next Release

  • ๐Ÿ”„ Real-time messaging
  • ๐Ÿ”„ Payment integration
  • ๐Ÿ”„ Push notifications
  • ๐Ÿ”„ Mobile app (React Native)

Phase 3 - Future

  • ๐Ÿ”ฎ AI-powered matching
  • ๐Ÿ”ฎ Advanced analytics
  • ๐Ÿ”ฎ Multi-language support
  • ๐Ÿ”ฎ IoT device integration

๐Ÿ“ˆ Analytics

The platform includes built-in analytics for:

  • User engagement tracking
  • Booking conversion rates
  • Technician performance metrics
  • Platform usage statistics

Built with โค๏ธ in Rwanda

For more information, visit our GitHub repository or watch our demo video.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors