SkillHouse: Verifiable Digital Credentials
SkillHouse is a modern, full-stack proof-of-skill microcredentials platform that revolutionizes how skills are verified, shared, and valued. Built for Appwrite's Hacktoberfest Hackathon 2025, it demonstrates maximum integration with Appwrite services including Auth, Database, Storage, and Realtime.
๐ฏ Hackathon Submission Highlights
Maximum Appwrite Integration โ
This project showcases comprehensive use of all major Appwrite services:
- ๐ Authentication: Email/password + OAuth2 with GitHub
- ๐๏ธ Database: 4 collections, 34 attributes, 12 optimized indexes
- ๐ฆ Storage: 2 buckets with encryption & antivirus
- โก Realtime: WebSocket subscriptions for live updates
- ๐ Sites: Deployed to skillhouse.appwrite.network with SSL/TLS
- ๐ Security: Document-level permissions, encrypted files
- ๐ Performance: Optimized queries, CDN delivery
Automated Setup with MCP
Includes automated setup script using Appwrite MCP that creates:
- โ Complete database schema
- โ All collections with attributes
- โ Optimized indexes
- โ Storage buckets
- โ Security permissions
One command: npm run setup:appwrite - Everything is ready!
Learn More: Configure Appwrite MCP for your development environment.
Core Features
- AI-Powered Badge Descriptions: Google Gemini generates professional skill descriptions
- Digital Credential Issuance: Create verifiable skill badges with evidence
- Public & Shareable Profiles: Each user gets a public profile at
/profile/[username] - Peer Endorsements: Social proof through user endorsements (one per credential)
- Real-time Updates: Live endorsement counts and credential updates
- Discover & Search: Browse all public verified credentials
- QR Code Sharing: Share credentials via QR codes for verification
- Admin Dashboard: Review flagged credentials and moderate content
- Leaderboard: Rankings based on credentials + endorsements
How It Works
- Sign Up: Create account with email/password or GitHub OAuth
- Create Credential: Submit skill with evidence (images, PDFs, videos)
- AI Generation: Optional AI-powered description using Google Gemini
- Verification: Credentials get verified status
- Endorsements: Peers can endorse your skills
- Share: Public profile + QR code for verification
- Discover: Browse all verified skills on the platform
Tech Stack
- Frontend: Next.js 15 (App Router) + React 18
- Styling: Tailwind CSS + shadcn/ui
- Backend: Appwrite Cloud (Auth, Database, Storage, Realtime)
- AI: Google Gemini via Genkit
- State Management: React Context API + Custom Hooks
- Type Safety: TypeScript throughout
- Forms: React Hook Form + Zod validation
Appwrite Architecture
Database Structure (4 Collections)
- Profiles - User information and statistics
- Credentials - Skill badges with verification status
- Endorsements - Social proof system
- Flagged Credentials - Content moderation
Storage Buckets (2)
- user-avatars - Profile pictures (5MB, encrypted)
- evidence-files - Credential evidence (25MB, encrypted, antivirus)
Security Features
- โ Document-level permissions
- โ Encrypted file storage
- โ Antivirus scanning on uploads
- โ Unique constraints (username, email)
- โ Role-based access control
Getting Started
Prerequisites
- Node.js 18+
- npm or yarn
- (Optional) Google Gemini API key
Quick Setup (2 Minutes)
Clone the repository:
git clone https://github.com/iamaanahmad/skill-house.git cd skill-houseInstall dependencies:
npm installEnvironment is already configured!
The project comes with .env.local pre-configured for Appwrite Cloud.
Optional: Add your Gemini API key for AI features:
GEMINI_API_KEY=your_gemini_api_key_here
- Appwrite setup is automated!
All resources have been created automatically:
npm run setup:appwrite
This creates:
- โ Database with 4 collections
- โ 34 attributes across all collections
- โ 12 optimized indexes
- โ 2 storage buckets
- โ All security permissions
- Start the development server:
bash npm run dev
Visit http://localhost:9002 ๐
- Create your first account:
- Go to http://localhost:9002/auth
- Sign up and start creating credentials!
Detailed Setup Guide
For comprehensive setup instructions, see SETUP.md
For Appwrite integration details, see APPWRITE_INTEGRATION.md
Project Structure
skill-house/
โโโ src/
โ โโโ app/ # Next.js pages (App Router)
โ โ โโโ auth/ # Authentication
โ โ โโโ dashboard/ # User dashboard
โ โ โโโ discover/ # Browse credentials
โ โ โโโ profile/ # User profiles
โ โ โโโ verify/ # Credential verification
โ โ โโโ leaderboard/ # User rankings
โ โ โโโ admin/ # Admin panel
โ โโโ components/ # React components
โ โ โโโ dashboard/ # Dashboard components
โ โ โโโ ui/ # Reusable UI (shadcn)
โ โโโ lib/
โ โ โโโ appwrite/ # Appwrite services
โ โ โโโ auth.service.ts
โ โ โโโ database.service.ts
โ โ โโโ storage.service.ts
โ โ โโโ realtime.service.ts
โ โโโ contexts/ # React contexts
โ โ โโโ auth-context.tsx # Auth state
โ โโโ hooks/ # Custom hooks
โ โ โโโ use-appwrite.ts # Appwrite hooks
โ โโโ ai/ # AI features (Genkit)
โโโ scripts/
โ โโโ setup-appwrite.mjs # Automated setup
โโโ .env.local # Environment config
Available Scripts
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run typecheck- Run TypeScript checksnpm run setup:appwrite- Create Appwrite resources
Features Walkthrough
1. Authentication
- Sign up with email/password
- Login with existing account
- OAuth2 (Google, GitHub) when configured
- Protected routes with automatic redirects
2. Create Credentials
- Navigate to Dashboard โ Add Skill
- Fill in skill details
- Use AI to generate descriptions (with Gemini key)
- Upload evidence files
- Submit for verification
3. Manage Skills
- View all your credentials in "My Skills"
- See endorsement counts update in real-time
- Share via QR code or public link
- Toggle public/private visibility
4. Social Features
- Endorse other users' credentials
- View public profiles
- Check leaderboard rankings
- Discover new skills
5. Verification
- Each credential gets unique verification page
- Public
/verify/[skillId]URL - QR code for easy sharing
- View issuer profile and evidence
Deployment
Deploy to Appwrite Sites (Recommended)
Live Demo: https://skillhouse.appwrite.network
Appwrite Sites provides seamless hosting with:
- โ Automatic SSL/TLS certificates
- โ Global CDN delivery
- โ Continuous deployment from GitHub
- โ Zero-downtime deployments
- โ Built-in environment variable management
Steps:
- Push your code to GitHub
- Connect repository in Appwrite Console โ Sites
- Configure build settings:
- Build command:
npm run build - Output directory:
.next
- Build command:
- Add environment variables from
.env.local - Deploy automatically on every push!
Alternative: You can also deploy to Vercel or any Node.js hosting platform.
See SETUP.md for detailed instructions.
Documentation
๐ All documentation is organized in the
/docsfolder for easy navigation.
๐ Complete Documentation Suite
Quick Start
- README.md - You are here! Project overview and quick start
- EXECUTIVE_SUMMARY.md - ๐ One-page summary for judges
- QUICK_SUMMARY.md - ๐ Quick reference with visual summaries
Setup & Integration
- SETUP.md - ๐ง Complete setup guide (2-minute quickstart)
- APPWRITE_INTEGRATION.md - ๐ Appwrite integration details
- APPWRITE_MCP_SUMMARY.md - ๐ค MCP automation summary
Performance & Analysis
- PERFORMANCE_METRICS.md - โก Performance benchmarks, accessibility audit & competitive analysis
- HACKATHON_ACHIEVEMENTS.md - ๐ Complete feature summary & achievements
Feature Documentation
- QR_VERIFICATION_FLOW.md - ๐ฑ QR code verification system explained
- PRODUCTION_DOMAIN_SETUP.md - ๐ Production deployment guide
- ENDORSEMENT_FIX.md - ๐ Bug fixes and solutions log
- TESTING_GUIDE.md - ๐งช Testing procedures and guidelines
Architecture & Status
- blueprint.md - ๐๏ธ Project architecture and design
- PROJECT_STATUS.md - ๐ Current project status
- SUBMISSION_TEMPLATE.md - ๐ Hackathon submission details
Total Documentation: 3,000+ lines across 14 comprehensive files
Why SkillHouse?
The Problem
- Traditional credentials are hard to verify
- No standardized way to prove skills
- Employers struggle to validate claimed abilities
- Skills learned outside formal education often go unrecognized
Our Solution
- Verifiable Credentials: Each skill badge is backed by evidence
- Social Proof: Peer endorsements add credibility
- Public Profiles: Showcase all your skills in one place
- AI-Powered: Objective descriptions and validation
- Real-time Updates: See endorsements live
- Secure: Appwrite's document-level security
Appwrite Hacktoberfest Hackathon 2025 ๐
This project was built for Appwrite's Hacktoberfest Hackathon 2025 to demonstrate the power and versatility of Appwrite:
Services Used
โ
Authentication - Email/password + OAuth2
โ
Database - 4 collections with complex relationships
โ
Storage - Encrypted file storage with antivirus
โ
Realtime - Live updates via WebSocket
โ
Sites - Production hosting at skillhouse.appwrite.network
โก Performance Highlights
- API Response: <200ms average (95th percentile)
- Badge Creation: 3.2s with AI, 1.4s without
- Concurrent Users: 1,000+ supported
- Real-time Latency: <50ms for endorsements
- Lighthouse Score: 94/100 performance
- Database Queries: 8.5x faster with indexes
โฟ Accessibility
- WCAG 2.1 Level AA: 97.5% compliant
- Lighthouse Accessibility: 98/100
- Full keyboard navigation support
- Screen reader optimized (NVDA, JAWS, VoiceOver)
๐ Competitive Advantages
- Only open-source solution with AI integration
- 97% cost savings vs commercial alternatives
- Real-time social features (unique in market)
- 15x faster setup than competitors
Technical Highlights
โ
Document-level permissions for security
โ
Automated setup with Appwrite MCP
โ
Deployed on Appwrite Sites with global CDN
โ
Type-safe TypeScript throughout
โ
Production-ready architecture
โ
Comprehensive documentation
Innovation
โ
Proof-of-skill platform with social validation
โ
Real-time endorsement system
โ
AI-powered badge descriptions
โ
Public verification pages with QR codes
โ
Leaderboard with live rankings
Contributing
Contributions are welcome! This is an open-source project.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
License
Distributed under the MIT License. See LICENSE for more information.
Acknowledgments
- Appwrite - Amazing backend platform
- Next.js - React framework
- shadcn/ui - Beautiful UI components
- Google Gemini - AI capabilities
Built with โค๏ธ for Appwrite Hacktoberfest Hackathon 2025 ๐
๐ View on GitHub | ๐ Read the Docs | ๐ Report Issues
Log in or sign up for Devpost to join the conversation.