Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dobrandoCulleres

An AI-powered enterprise talent management and team organization platform

dobrandoCulleres (Galician for "of bending spoons") is a full-stack web application designed to help organizations discover talent, organize teams, and leverage AI to find the right people for the right projects. Built for hackathon innovation, it combines modern web technologies with intelligent skill matching to streamline team formation and expertise discovery.

Features

Talent Management

  • Employee Profiles: Manage comprehensive employee profiles with job titles, departments, and skills
  • Skill Tracking: Store and rate employee skills with proficiency levels
  • Skill Embeddings: Uses Ollama and pgvector for intelligent semantic skill matching
  • Expert Discovery: Find experts based on skill searches with vector similarity matching

Team Organization

  • Group Management: Create and manage teams/groups within your organization
  • Team Leaders: Assign designated leaders to teams
  • Org Charts: Visualize organizational structure and hierarchies

AI-Powered Features

  • Team Chatbot: Interact with an AI chatbot to get team recommendations and insights
  • Intelligent Matching: Find experts by skills, departments, or natural language queries
  • Tag-Based Organization: Organize skills with tags for better categorization

Enterprise Security

  • Role-Based Access Control: Support for Admin, Manager, and Employee roles
  • Session Management: Secure cookie-based sessions with 30-minute timeout
  • Authentication: Login/registration with email and password
  • User Permissions: Admin-only operations for user management

Internationalization

  • Multi-Language Support: Built-in i18n support for multiple languages
  • Locale-Based Routing: Language-specific routes

Architecture

Tech Stack

Frontend:

  • Next.js 16 (React 19)
  • TypeScript
  • Tailwind CSS
  • Radix UI Components
  • React Hook Form + Zod for validation
  • React Query for data fetching
  • Framer Motion for animations
  • XY Flow for interactive diagrams

Backend:

  • Go 1.26.2
  • PostgreSQL with pgvector extension
  • GORM ORM
  • Ollama for embedding generation
  • Gorilla Sessions for authentication

Infrastructure:

  • Docker support
  • PostgreSQL database
  • Ollama service

Project Structure

dobrandoCulleres/
├── backend/          # Go backend API
│  ├── main.go       # Entry point
│  ├── router/       # HTTP route handlers
│  ├── db/          # Database models and operations
│  ├── internal/    # Internal utilities
│  └── config/      # Configuration
├── frontend/         # Next.js frontend
│  └── src/
│      ├── app/      # App routes and pages
│      ├── components/ # React components
│      ├── hooks/    # Custom React hooks
│      ├── lib/      # Utilities
│      └── dictionaries/ # i18n strings
├── docker/          # Docker configuration
└── config.json      # Backend configuration

Getting Started

Prerequisites

  • Node.js 18+ (for frontend)
  • Go 1.26+ (for backend)
  • PostgreSQL 12+ with pgvector extension
  • Ollama running locally (for embedding generation)
  • Docker (optional, for containerized setup)

Backend Setup

  1. Install Go dependencies:

    cd backend
    go mod download
  2. Configure database in backend/config.json:

    {
      "database": {
        "host": "localhost",
        "port": 5432,
        "user": "postgres",
        "password": "password",
        "dbname": "dobrandoculleres"
      },
      "router": {
        "host": "localhost",
        "port": 8080,
        "session_key": "your-secret-key"
      }
    }
  3. Set up PostgreSQL with pgvector:

    # Create database
    createdb dobrandoculleres
    
    # Install pgvector extension
    psql dobrandoculleres -c "CREATE EXTENSION IF NOT EXISTS vector;"
  4. Start Ollama (in another terminal):

    ollama serve
  5. Run backend:

    go run main.go
    
    # Or with mock data:
    go run main.go -config config.json -populate

    Backend will start on http://localhost:8080

Frontend Setup

  1. Install dependencies:

    cd frontend
    pnpm install
  2. Start development server:

    pnpm dev

    Frontend will start on http://localhost:3000

  3. Build for production:

    pnpm build
    pnpm start

Docker Setup

  1. Build and run with Docker Compose:

    docker-compose up

    This will start:

    • PostgreSQL database
    • Ollama service
    • Go backend on port 8080

API Documentation

The backend provides a REST API. Key endpoints:

Authentication

  • POST /auth/login - Login with email/password
  • POST /auth/register - Create new account
  • POST /auth/logout - Logout
  • GET /auth/me - Get current user
  • DELETE /auth/me - Delete account

Users

  • GET /api/users - List all users
  • GET /api/users/{id} - Get user details
  • POST /api/users - Create user (Admin only)
  • PATCH /api/users/{id} - Update user (Admin only)
  • DELETE /api/users/{id} - Delete user (Admin only)

Skills

  • GET /api/skills - List all skills
  • POST /api/skills - Create skill (Employee+)
  • GET /api/skills/match?keyword=golang - Find similar skills (vector search)
  • GET /api/users/{id}/skills - Get user's skills
  • PUT /api/users/{id}/skills - Update user's skills

Groups

  • GET /api/groups - List all groups
  • POST /api/groups - Create group (Employee+)
  • GET /api/groups/{id} - Get group details
  • PUT /api/groups/{id} - Update group
  • DELETE /api/groups/{id} - Delete group

Search

  • GET /api/experts?q=golang&skills=go,python&levels=1,2 - Find knowledge

Stats

  • GET /api/stats - Get organization statistics

See backend/README.md for complete API documentation.

Key Features Explained

Skill Matching with Vector Embeddings

Skills are embedded using Ollama's mxbai-embed-large model and stored in PostgreSQL's pgvector extension. When searching for experts, the system uses semantic similarity to find people with related skills.

Role-Based Access Control

  • Admin (level 2): Full system access
  • Manager (level 1): Can manage user skills and team assignments
  • Employee (level 0): Basic access, can create groups and manage own profile

Team Chatbot

The chatbot feature allows users to interact with an AI assistant to:

  • Get team recommendations
  • Find experts for specific skill requirements
  • Discover team composition insights

Development

Environment Variables

Create .env file in backend directory:

DB_HOST=localhost
DB_PORT=5432
DB_USER=postgres
DB_PASSWORD=password
DB_NAME=dobrandoculleres
OLLAMA_HOST=http://localhost:11434
SESSION_KEY=your-secret-session-key

Running with Mock Data

Generate sample data for testing:

cd backend
go run main.go -config config.json -populate

This will populate the database with sample users, skills, groups, and relationships.

Code Quality

Frontend linting:

cd frontend
pnpm lint

Dependencies

Frontend Key Packages

  • next: 16.2.4 - React framework
  • react: 19.2.4 - UI library
  • @tanstack/react-query: Data fetching
  • framer-motion: Animations
  • recharts: Data visualization
  • zod: Schema validation

Backend Key Packages

  • gorm: Object-relational mapping
  • pgvector-go: Vector database support
  • gorilla/sessions: Session management
  • ollama: Embedding generation

Contributing

This project was created for a hackathon. Contributions are welcome!

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

License

This project is provided as-is for hackathon purposes.

Future Enhancements

Potential features for future iterations:

  • Advanced analytics and reporting
  • Team performance metrics
  • Project assignment tracking
  • Skill development recommendations
  • Social features (peer connections)
  • Mobile app
  • Real-time notifications
  • Advanced search filters
  • Custom skill hierarchies

Support

For issues or questions:

  1. Check existing issues on GitHub
  2. Create a new issue with detailed description
  3. Include steps to reproduce bugs

Built at HackUPC 2026

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages