Skip to content

GDGVITM/GDG_Recruit_new

Repository files navigation

GDG VITM Recruitment Portal

A modern, interactive recruitment portal built with cutting-edge web technologies to streamline the GDG VITM recruitment process.

🚀 Features

  • Interactive 3D Elements: Built with Three.js and React Three Fiber
  • Modern UI: Built with shadcn/ui and Tailwind CSS
  • Supabase Backend: Secure, scalable database with real-time capabilities
  • Type Safety: Full TypeScript support
  • Fast Development: Powered by Vite
  • Form Handling: Robust form management with React Hook Form
  • State Management: Efficient state management with React Query
  • Admin Dashboard: Built-in application management interface

🛠️ Tech Stack

  • Frontend: React 18
  • Backend: Supabase (PostgreSQL database)
  • Styling: Tailwind CSS with shadcn/ui components
  • 3D Rendering: Three.js, @react-three/fiber, @react-three/drei
  • Form Handling: React Hook Form with Zod validation
  • State Management: React Query
  • Build Tool: Vite
  • Type Safety: TypeScript
  • Animation: Framer Motion

🚀 Getting Started

Prerequisites

  • Node.js 16+ (Recommended: Latest LTS version)
  • npm
  • git
  • Supabase account (free tier available)

Installation

  1. Clone the repository

    git clone https://github.com/GDGVITM/GDG_Recruit_new.git
    cd GDG_Recruit_new
  2. Install dependencies

    npm install
  3. Set up Supabase

    • Create a new project at Supabase
    • Run the SQL schema from supabase-schema.sql in your SQL editor
    • Copy your project URL and anon key
  4. Configure environment variables

    cp .env.example .env

    Update .env with your Supabase credentials:

    VITE_SUPABASE_URL=https://your-project-id.supabase.co
    VITE_SUPABASE_ANON_KEY=your-supabase-anon-key
  5. Start the development server

    npm run dev
  6. Open your browser The application will be available at http://localhost:5173

� Documentation

🧪 Testing

Form Testing

Open browser console and use the built-in debug utilities:

// Test form submission
testSupabaseSubmission()

// View all applications
getAllApplications()

// Check if email exists
checkEmailExists("test@example.com")

Unit Tests

npm test

�📦 Build for Production

npm run build

This will create a dist folder with the production build.

🛡️ Database Schema

The application uses a PostgreSQL database with the following main table:

Applications Table

  • id - Unique UUID
  • name - Applicant's full name
  • email - Applicant's email (unique)
  • university - University/Institution
  • year - Academic year
  • position - Applied position
  • skills - Technical skills
  • experience - Previous experience
  • motivation - Motivation to join GDG
  • created_at - Submission timestamp
  • updated_at - Last update timestamp

🔧 Admin Features

The portal includes an optional admin dashboard (ApplicationsAdmin component) with:

  • View all applications
  • Search and filter capabilities
  • Export to CSV
  • Real-time statistics
  • Responsive design

🤝 Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

🙏 Acknowledgments

📧 Contact

For any queries, please contact gdgoncampus.vit@gmail.com or open an issue in the repository.

Releases

No releases published

Packages

No packages published

Contributors 6