Skip to content

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 Β· πŸ“§ contact@volingi.com

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages