Version 1.0 🎉
A comprehensive enterprise-grade platform for tracking team skills, certifications, and professional development built with Next.js 15, TypeScript, Tailwind CSS, and Supabase.
- Node.js 18+
- Supabase account
- Google Cloud Console account (for OAuth)
Install dependencies
npm install
Configure environment variables
cp .env.example .env.local
Fill in your credentials in
.env.local:- Supabase URL and keys
- Google OAuth credentials
- NextAuth secret
Set up database
Create the
user_profilestable in Supabase (see SETUP.md)Run development server
npm run dev
Open your browser
Navigate to http://localhost:3000
📖 For detailed setup instructions, see SETUP.md
- ✅ Google OAuth with domain restriction (@monks.com)
- ✅ Auto-role assignment (admin for specific users)
- ✅ JWT-based session management
- ✅ Role-based access control (Team Member, Manager, Admin)
- ✅ Protected routes with middleware
- ✅ Admin impersonation with audit trail
- ✅ Home Dashboard - Real-time KPIs and skill completion tracking
- ✅ Skills Management - Multi-level proficiency assessment with autosave
- ✅ Certifications - Lifecycle management with file uploads
- ✅ Analytics Dashboard - Team skills overview (Manager/Admin)
- ✅ Profile Management - Complete professional profiles
- ✅ Find People - Search by skills and expertise with Slack integration
- ✅ Admin Panel - System configuration and bulk imports
- ✅ BigQuery Integration - Automatic profile enrichment from employee data
- ✅ Auto Manager Roles - Automatic role assignment based on org hierarchy
- ✅ Manager View - Team member visibility and management
- ✅ Regional Analytics - NAMER, EMEA, LATAM, APAC statistics
- ✅ Organizational Hierarchy - Manager-report relationships
- ✅ Responsive design (mobile-first)
- ✅ Dark mode support
- ✅ Toast notifications
- ✅ Loading states
- ✅ Error handling
- Framework: Next.js 15 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS v3.4
- UI Components: Radix UI
- Icons: Lucide React
- Notifications: Sonner
- Database: Supabase (PostgreSQL)
- Authentication: Supabase Auth with Google OAuth
- Storage: Supabase Storage (for certification files)
- API: Next.js API Routes
- Data Integration: BigQuery (via Foreign Data Wrapper)
- Package Manager: npm
- Linting: ESLint
- Type Checking: TypeScript
/app/
├── (dashboard)/ # Protected dashboard routes
│ ├── layout.tsx # Dashboard layout with navigation
│ └── page.tsx # Home dashboard
├── api/
│ └── auth/
│ └── [...nextauth]/
│ └── route.ts # NextAuth configuration
├── login/
│ └── page.tsx # Login page
├── layout.tsx # Root layout
├── providers.tsx # Client providers (session, theme)
└── globals.css # Global styles
/components/
├── dashboard/
│ └── DashboardNav.tsx # Navigation component
├── home/
│ └── HomeClient.tsx # Home dashboard client
└── ui/ # Reusable UI components (46 components)
/lib/
├── supabase.ts # Supabase client utilities
└── utils.ts # Helper functions
/types/
└── next-auth.d.ts # NextAuth type definitions
/supabase/
└── functions/ # Supabase Edge Functions (legacy)
- Create OAuth credentials in Google Cloud Console
- Set authorized redirect URI:
http://localhost:3000/api/auth/callback/google - Add credentials to
.env.local
Only users with @monks.com email addresses can sign in.
yoann.leny@monks.com→ Admin (full access)- Other
@monks.comusers → Team Member (standard access)
Roles can be updated in the database.
CREATETABLEuser_profiles (
id TEXTPRIMARY KEY,
email TEXT UNIQUE NOT NULL,
name TEXTNOT NULL,
role TEXTNOT NULL DEFAULT 'team_member',
title TEXT,
team TEXT,
department TEXT,
profile_completeness INTEGER DEFAULT 20,
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);See SETUP.md for complete database setup.
Version 1.0 - Production Ready ✅
- Project setup and configuration
- Google OAuth authentication
- Domain restriction and role-based access
- Home dashboard with KPIs
- Skills management page with autosave
- Certifications with file upload
- Profile management
- Analytics dashboard
- Find People search with Slack integration
- Admin panel with CSV import
- BigQuery integration for profile enrichment
- Automatic manager role assignment
- Admin impersonation
- Comprehensive security (RLS, audit logging)
- API routes for all features
- UI component library
- Production-ready deployment
# Run development server
npm run dev
# Build for production
npm run build
# Start production server
npm start
# Lint code
npm run lint- SETUP.md - Detailed setup instructions
- CHANGELOG.md - Version history and release notes
- AUTO_ENRICH_ON_LOGIN.md - Profile enrichment feature
- AUTO_MANAGER_ROLE_ASSIGNMENT.md - Manager role automation
- BIGQUERY_ENRICHMENT_SETUP.md - BigQuery integration guide
- BIGQUERY_QUICK_REFERENCE.md - BigQuery reference
- SECURITY_REVIEW_REPORT.md - Security documentation
- /archive/ - Archived development and diagnostic files
This is a private project for internal use.
Proprietary - Internal Use Only
For issues or questions:
- Check SETUP.md for setup help
- Review browser console for errors
- Verify environment variables are set correctly
- Check Supabase connection status
- Next.js setup
- Authentication
- Basic navigation
- Skills management
- Certifications
- Profile management
- Analytics
- Team collaboration
- Admin tools
- Performance optimization
- Documentation
- Local environment fixes
Built with ❤️ for team skill development