Skip to content

ArthSogh/Volingi

Repository files navigation

Volingi Logo

Volingi 🌍

Learn French by doing what matters.

Volingi connects volunteers learning French with nonprofits that need skilled help — turning real conversations into real progress.

Live Demo Next.js Supabase TypeScript License: MIT


📸 Screenshots

🏠 Homepage

Homepage Hero

✨ Core Features

Features Section

🔐 Sign Up — Choose Your Role

Register Choice

Volunteer Registration Nonprofit Registration Sign In
Volunteer Form Nonprofit Form Login

🌟 Overview

Volingi is a Progressive Web Application (PWA) that addresses a critical gap in language learning: the lack of authentic, practical application opportunities.

With 1.5 billion people actively learning languages and 80% abandoning within the first year, Volingi creates a dual-sided marketplace connecting volunteers seeking French immersion with French nonprofits that need skilled help.

Unlike traditional language apps that rely on artificial scenarios, Volingi enables conversational fluency faster by embedding language learning into meaningful volunteer work where communication is immediately necessary and rewarding.


🎯 Key Features

👋 For Volunteers

Feature Description
🎯 Smart Matching Personalized project recommendations based on skills, CEFR level & location
📊 Progress Tracking Visualize French improvement with CEFR level progression (A1 → C2)
🌐 Real-world Immersion Translate phrases on the fly and log vocabulary from actual conversations
👥 Community Feed Connect with other volunteers and celebrate achievements

🏢 For Nonprofits & Organizations

Feature Description
📋 Project Management Create and manage volunteer opportunities with specific skill & language requirements
🤝 Auto Matching Receive qualified volunteer recommendations automatically
📅 Scheduling Manage volunteer assignments and track project progress
📈 Impact Metrics Measure volunteer engagement and project outcomes

🚀 Tech Stack

Frontend         Next.js 16 · React 19 · TypeScript 5 · Tailwind CSS
Backend          Supabase (PostgreSQL · Auth · Realtime · Storage)
Infrastructure   AWS (EC2/ECS · S3 · CloudFront) · Docker
APIs             Google Maps · Google Cloud Translation / DeepL
Payments         Stripe
Testing          Jest · fast-check · Playwright

🏗️ Architecture

┌─────────────────────────────────────────┐
│           PWA Client (Next.js)          │
│   - Server Components & App Router      │
│   - Tailwind CSS + Responsive Design    │
└──────────────────┬──────────────────────┘
                   │
┌──────────────────▼──────────────────────┐
│              API Layer                  │
│         (Next.js API Routes)            │
└──┬──────────┬──────────┬───────────┬───┘
   │          │          │           │
┌──▼──┐  ┌───▼───┐  ┌───▼───┐  ┌───▼────┐
│Supa │  │Match  │  │Trans- │  │Progress│
│base │  │Engine │  │lation │  │Tracker │
│Auth │  │       │  │API    │  │        │
└─────┘  └───────┘  └───────┘  └────────┘

🗄️ Database Models

Volunteer Profile
  • Name, Age, Location (with coordinates)
  • French language level (CEFR: A1–C2)
  • Other languages spoken
  • Professional skills and experience
  • Availability and preferences
Nonprofit Profile
  • Business name, website, contact
  • Location & organization type
  • Verification status
Project
  • Title, description, scope
  • Required skills and language level
  • Duration, schedule, location
  • Preparation materials
Assignment
  • Volunteer–project pairing
  • Status: pending → active → completed
  • Match score & reasons, feedback & ratings
Progress Record
  • CEFR level progression
  • Vocabulary mastery
  • Session hours, quality & assessment scores

📊 Success Metrics

Metric Target
Volunteer engagement 70% complete ≥1 assignment in first 3 months
Language progression +1.5 CEFR sub-levels in 6 months
Monthly active retention 10%
Net Promoter Score > 50

🔧 Getting Started

Prerequisites

  • Node.js 20 LTS or higher
  • npm or yarn
  • Supabase account

Installation

# Clone the repository
git clone https://github.com/ArthSogh/Volingi.git
cd Volingi

# Install dependencies
npm install

# Set up environment variables
cp .env.local.example .env.local
# Edit .env.local with your API keys

# Run database migrations
npm run db:migrate

# Start development server
npm run dev

Visit http://localhost:3000 🚀

Environment Variables

# Supabase
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key

# Maps API
NEXT_PUBLIC_MAPS_API_KEY=your_maps_api_key

# Translation API
TRANSLATION_API_KEY=your_translation_api_key

# Stripe
STRIPE_SECRET_KEY=your_stripe_secret_key
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=your_stripe_publishable_key

🧪 Testing

npm test                  # Unit tests
npm run test:property     # Property-based tests
npm run test:integration  # Integration tests
npm run test:e2e          # End-to-end tests (Playwright)
npm run test:coverage     # Coverage report

📦 Deployment

# Build for production
npm run build

# Docker
docker-compose up --build

# Deploy to AWS
npm run deploy:production

📈 Roadmap

✅ Phase 1: MVP (Months 1–3)

  • User registration and authentication
  • Profile creation for volunteers and nonprofits
  • Basic matching algorithm
  • Project listing and assignment

🔄 Phase 2: Core Features (Months 4–6)

  • Real-time translation during sessions
  • CEFR progress tracking & level calculation
  • Community feed and social features
  • Mobile app optimization

🔭 Phase 3: Scale (Months 7–12)

  • Advanced matching with ML
  • Multi-language support
  • Enterprise tier features
  • Third-party API integrations

🌍 Phase 4: Expansion (Months 13–18)

  • Expand to Belgium, Switzerland, Canada
  • Additional language learning paths
  • Gamification and achievements
  • Corporate volunteer programs

💼 Business Model

Tier Target Price
Volunteer Premium Individual learners €12/month
Nonprofit Organizations €99/month
Enterprise Corporate volunteer programs €15–50K/year

Market Opportunity: TAM €45B+ · SAM €3.2B · SOM €180M


🔐 Security

  • JWT authentication with secure token management
  • Row-level security (RLS) policies via Supabase
  • TLS 1.3 encryption for all data in transit
  • Database encryption at rest
  • GDPR compliant data handling

🤝 Contributing

Contributions are welcome!

  1. Fork the repository
  2. Create your feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m 'feat: add amazing feature'
  4. Push to the branch: git push origin feature/amazing-feature
  5. Open a Pull Request

📄 License

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


Made with ❤️ for volunteers and nonprofits building a better world together

🌐 volingi.online · 📧 [email protected]

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages