Trade skills, build community. A platform that connects people through expertiseβ‘
SkillPact is a web application that facilitates peer-to-peer skill and service exchanges within communities.
Built with modern web technologies, it enables users to offer their expertise and request services from others using an internal credit system for value exchange.
Designed for local communities, educational institutions, and professional networks seeking efficient resource sharing and skill development opportunities.
This project is proudly sponsored by Neon. Thank you for supporting open source and powering our database infrastructure!
- Credit-Based Exchange System - Internal economy for tracking and managing service transactions
- User Profile Management - Comprehensive profiles with skills, services, and reputation tracking
- Geolocation Services - Location-based service discovery and filtering
- Real-time Communication - Built-in messaging system for coordination and negotiation
- Reputation & Rating System - User feedback and trust building mechanisms
- Exchange Lifecycle Management - Complete workflow from proposal to completion
- Notification System - Real-time updates for exchange activities and messages
- Responsive Web Design - Cross-platform compatibility with mobile-first approach
- Authentication & Authorization - Secure user management with OAuth integration
- Service Categorization - Organized taxonomy for easy service discovery
- User Registration & Profile Setup - Account creation with skill and service listing
- Service Discovery - Browse and filter available services by category, location, and user ratings
- Exchange Initiation - Submit requests with proposed terms and credit allocation
- Negotiation & Scheduling - Real-time communication for finalizing exchange details
- Service Delivery & Completion - Execute exchanges with status tracking and updates
- Rating & Feedback - Post-completion evaluation system for reputation building
- Frontend Framework - Next.js 14 with App Router
- Language - TypeScript for type-safe development
- Styling - Tailwind CSS for responsive design
- Database - PostgreSQL hosted on Neon
- ORM - Prisma for database management
- Authentication - NextAuth.js with multiple providers
- Real-time Communication - tRPC for type-safe APIs
- State Management - TanStack Query for server state
- UI Components - Radix UI with custom design system
- Node.js 18+
- pnpm (recommended) or npm/yarn
- PostgreSQL database (we recommend Neon)
- Clone the repository:
git clone https://github.com/abhi-yo/skillpact.git
cd skillpact- Install dependencies:
pnpm install
# or
npm install- Set up environment variables:
Create a .env.local file in the root directory:
# Database
DATABASE_URL="postgresql://username:password@hostname:5432/skillpact"
SHADOW_DATABASE_URL="postgresql://username:password@hostname:5432/skillpact_shadow"
# NextAuth
NEXTAUTH_SECRET="your-secret-key"
NEXTAUTH_URL="http://localhost:3000"
# OAuth Providers (optional)
GOOGLE_CLIENT_ID="your-google-client-id"
GOOGLE_CLIENT_SECRET="your-google-client-secret"- Set up the database:
pnpm prisma migrate dev
pnpm prisma db seed- Start the development server:
pnpm dev- Open your browser and visit: http://localhost:3000
pnpm build
pnpm startskillpact/
βββ app/ # Next.js 14 App Router
β βββ (auth)/ # Authentication pages
β βββ api/ # API routes and tRPC
β βββ dashboard/ # User dashboard
β βββ exchanges/ # Exchange management
β βββ services/ # Service listings
β βββ messages/ # Messaging system
β βββ profile/ # User profiles
βββ components/ # Reusable UI components
β βββ ui/ # Base UI components (Radix + custom)
β βββ *.tsx # Feature-specific components
βββ lib/ # Utility libraries
β βββ auth.ts # NextAuth configuration
β βββ prisma.ts # Prisma client setup
β βββ trpc.ts # tRPC configuration
βββ prisma/ # Database schema and migrations
β βββ schema.prisma # Prisma schema
β βββ migrations/ # Database migrations
βββ server/ # Backend logic
β βββ routers/ # tRPC routers
β βββ trpc.ts # tRPC server setup
βββ types/ # TypeScript type definitions
- Credit-based transaction engine with balance tracking and validation
- Multi-stage exchange workflow (proposed β negotiated β scheduled β completed)
- Automated status updates and transaction history
- Comprehensive user profiling with skill taxonomy and service offerings
- Location-based service matching and proximity algorithms
- Reputation scoring system with weighted feedback mechanisms
- Real-time messaging with WebSocket implementation
- Push notification system for exchange updates and messages
- In-app coordination tools for service delivery logistics
- PostgreSQL database with optimized queries for scalability
- User activity tracking and engagement metrics
- Service performance analytics and recommendation algorithms
We welcome contributions to make SkillPact even better! Here's how you can help:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature- Make your changes and commit:
git commit -m "feat: add amazing feature"- Push to your branch and create a Pull Request
- UI/UX Improvements - Enhance the user interface and experience
- New Features - Add functionality like group exchanges, skill workshops
- Internationalization - Add support for multiple languages
- Mobile App - React Native or Flutter implementation
- Testing - Add comprehensive test coverage
- Documentation - Improve docs and add tutorials
- Follow the existing code style and conventions
- Write meaningful commit messages
- Add tests for new features
- Update documentation as needed
- Ensure responsive design across devices
The application uses a relational database design with the following core entities:
- Users - Authentication, profile data, skills inventory, location, and credit balance
- Services - Service offerings with metadata, categorization, and availability
- Exchanges - Transaction records with status tracking, terms, and completion data
- Messages - Communication history with threading and real-time delivery
- Ratings - User feedback system with weighted scoring for reputation calculation
- Notifications - System alerts, user notifications, and delivery tracking
- Connect your GitHub repository to Vercel
- Set up environment variables in Vercel dashboard
- Deploy automatically on every push to main
- Create a Neon account
- Create a new project and database
- Copy the connection string to your environment variables
- Run migrations:
pnpm prisma migrate deploy
| Variable | Description | Required |
|---|---|---|
DATABASE_URL |
PostgreSQL connection string | β |
SHADOW_DATABASE_URL |
Shadow database for migrations | β |
NEXTAUTH_SECRET |
NextAuth secret key | β |
NEXTAUTH_URL |
Application URL | β |
GOOGLE_CLIENT_ID |
Google OAuth client ID | π§ |
GOOGLE_CLIENT_SECRET |
Google OAuth client secret | π§ |
This project is proudly powered by Neon β the serverless PostgreSQL platform that makes database management effortless.
Neon provides:
- Serverless PostgreSQL with instant branching
- Automatic scaling based on your app's needs
- Built-in connection pooling for optimal performance
- Database branching for safe development and testing
Special thanks to Neon for sponsoring this open source project and supporting the developer community!
This project is open source and available under the MIT License.
If you find SkillPact helpful, please consider:
- β Starring this repository on GitHub
- π Reporting bugs and suggesting features
- π€ Contributing to the codebase
- π’ Sharing with your community
Together, let's advance community-driven resource sharing through technology!
Join SkillPact and experience collaborative learning and service delivery.