A streamlined application for managing hackathon applications and participants.
- User authentication with Clerk
- Application submission and management
- Dynamic form configuration
- Real-time auto-saving of form fields
- Application status tracking
├── app/ # Next.js application routes
│ ├── api/ # API routes (consolidated)
│ │ └── db/ # Database-related API endpoints
├── components/ # React components
│ ├── ui/ # UI components (using shadcn/ui)
│ └── application*.tsx # Application-specific components
├── lib/ # Shared libraries and utilities
│ ├── applicationData.ts # Form field configuration
│ ├── prisma.ts # Prisma client configuration
├── prisma/ # Database schema
├── public/ # Static assets
The API has been consolidated into a single route file with action-based routing:
- GET
/api/db?action=get-application&userId=123- Retrieves an application - GET
/api/db?action=test-connection- Tests database connectivity - POST
/api/dbwith body{ action: 'save-application', userId: '123', ...formData }- Saves application data - POST
/api/dbwith body{ action: 'submit-application', userId: '123' }- Submits an application
The application form has been optimized for:
- Better performance
- Simplified maintenance
- Easier field editing
- Real-time saving with visual feedback
The form is dynamically generated from the configuration in lib/applicationData.ts, making it easy to:
- Add/remove form fields
- Change validation rules
- Reorganize form sections
- Modify field labels and descriptions
# Install dependencies
pnpm install
# Setup database
pnpm prisma:generate
pnpm prisma:push
# Start development server
pnpm devThe following optimizations have been implemented:
- Consolidated API Routes: Simplified API structure with action-based routing
- Dynamic Form Rendering: Generated from configuration for easier maintenance
- Real-time Field Saving: Immediate feedback with visual indicators
- Reduced Initial Load Time: Streamlined code and optimized form rendering
- Improved Type Safety: Better TypeScript typing throughout the application