Skip to content
This repository was archived by the owner on Feb 25, 2026. It is now read-only.

Latest commit

History

126 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Skills & Certification Tracking Platform

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.


🚀 Quick Start

Prerequisites

  • Node.js 18+
  • Supabase account
  • Google Cloud Console account (for OAuth)

Setup

  1. Install dependencies

    npm install
  2. Configure environment variables

    cp .env.example .env.local

    Fill in your credentials in .env.local:

    • Supabase URL and keys
    • Google OAuth credentials
    • NextAuth secret
  3. Set up database

    Create the user_profiles table in Supabase (see SETUP.md)

  4. Run development server

    npm run dev
  5. Open your browser

    Navigate to http://localhost:3000

📖 For detailed setup instructions, see SETUP.md


✨ Features

Authentication & Authorization

  • ✅ 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

Core Functionality

  • 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

Advanced Features

  • 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

User Experience

  • ✅ Responsive design (mobile-first)
  • ✅ Dark mode support
  • ✅ Toast notifications
  • ✅ Loading states
  • ✅ Error handling

🏗️ Tech Stack

Frontend

  • Framework: Next.js 15 (App Router)
  • Language: TypeScript
  • Styling: Tailwind CSS v3.4
  • UI Components: Radix UI
  • Icons: Lucide React
  • Notifications: Sonner

Backend

  • 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)

Development

  • Package Manager: npm
  • Linting: ESLint
  • Type Checking: TypeScript

📁 Project Structure

/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)

🔐 Authentication

Google OAuth Setup

  1. Create OAuth credentials in Google Cloud Console
  2. Set authorized redirect URI: http://localhost:3000/api/auth/callback/google
  3. Add credentials to .env.local

Domain Restriction

Only users with @monks.com email addresses can sign in.

Role Assignment

  • yoann.leny@monks.comAdmin (full access)
  • Other @monks.com users → Team Member (standard access)

Roles can be updated in the database.


🗄️ Database Schema

user_profiles

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.


🚧 Development Status

Version 1.0 - Production Ready

✅ Completed

  • 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

🧪 Testing

# Run development server
npm run dev
# Build for production
npm run build
# Start production server
npm start
# Lint code
npm run lint

📚 Documentation


🤝 Contributing

This is a private project for internal use.


📄 License

Proprietary - Internal Use Only


🆘 Support

For issues or questions:

  1. Check SETUP.md for setup help
  2. Review browser console for errors
  3. Verify environment variables are set correctly
  4. Check Supabase connection status

🎯 Key Features Roadmap

Phase 1: Foundation ✅

  • Next.js setup
  • Authentication
  • Basic navigation

Phase 2: Core Features ✅

  • Skills management
  • Certifications
  • Profile management

Phase 3: Advanced Features ✅

  • Analytics
  • Team collaboration
  • Admin tools

Phase 4: Polish ✅

  • Performance optimization
  • Documentation
  • Local environment fixes

Built with ❤️ for team skill development

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages