InnovateX Hackathon Project
Day 1 focused on establishing a solid foundation for both the frontend and backend. The goal was to set up the core tech stack, ensure UI consistency, and integrate the AI layer with a working API endpoint.
- Initialized a React + TypeScript project using Vite
- Verified development server and build configuration
- Installed and configured shadcn/ui
- Configured path alias (
@/) across:tsconfig.jsontsconfig.app.jsonvite.config.ts
- Added and verified core UI components:
ButtonCardInputBadge
- Set up React Router
- Created a base routing structure for future pages
- Applied initial branding decisions
- Implemented background design for a clean, modern UI using AI
- Installed required backend dependencies
- Initialized and started the backend server successfully
- Designed a structured AI prompt
- Created a dedicated AI API endpoint
- Integrated AI logic into the backend
- Tested the AI endpoint successfully using Postman
- Frontend foundation established
- UI system configured and rendering correctly
- Backend server running
- AI integration functional and tested
Total Time Spent on day 1 is 5.5 hours
On Day 2, the focus was on setting up the backend foundation for VisionRepo using Prisma with MongoDB and understanding proper backend architecture.
- Chose MongoDB + Prisma
- Avoided using Mongoose alongside Prisma
- Learned why only one data access layer should exist
- Initialized Prisma
- Configured MongoDB as the datasource
- Used
prisma generateandprisma db push - Understood why Prisma migrations are not used with MongoDB
- Services define business logic
- Services should never execute logic on import
- Controllers decide when to call services
Implemented core service functions:
-
getDashboardMetrics()- Aggregates repositories and analyses
- Computes totals and averages for dashboard cards
-
getRepositoriesHealth()- Returns per-repository health data
- Acts as a controlled data exposure layer
- Prisma setup completed
- Service layer logic completed
- Ready to implement controllers and routes next
Total Time Spent on day 2 is 4 hours
- Faced unexpected backend breakage due to Node.js reinstallation
- Switched to Node.js v20 (LTS) to restore a stable runtime environment
- Reinstalled dependencies to align with the new Node version
- Encountered Prisma client initialization failures
- Identified issues caused by:
- Missing url in schema.prisma
- Incorrect usage of prisma.config.ts
- Removed prisma.config.ts and used schema.prisma as the single source of truth
- Downgraded Prisma to v5.22.0 (stable)
- Successfully regenerated Prisma Client
- Verified MongoDB connection and database access
- Fixed route conflicts where generic /api routes intercepted /api/dashboard routes
- Reordered route registration to ensure specific routes are mounted before generic ones
- Resolved hanging requests caused by middleware not calling next() or returning a response
- Implemented and tested:
- GET /api/dashboard/metrics
- GET /api/dashboard/repositories
- Express β Controller β Service β Prisma β MongoDB
- Successfully tested APIs using browser and Postman
- Analyze Endpoint (/api/analyze)
- Endpoint wiring and request validation implemented
- Request reaches controller and service correctly
-Encountered 500 errors originating from Gemini AI integration after environment reset -Issue identified as AI model / environment sensitivity, not routing or backend logic
- Node.js version stabilized (v20 LTS)
- Prisma configuration and client generation fixed
- Express routing and middleware issues resolved
- Dashboard APIs fully operational and tested
- What Needs to Be Fixed Next
- Finalize stable Gemini AI model selection
- Improve defensive JSON parsing for AI responses
- Enhance error transparency for /api/analyze
Total Time Spent on day 3 is 6 hours
β What We Accomplished DAY 4,5,6 (Day Summary) π§ Core Architecture
β Completed end-to-end analysis flow
GitHub repo URL β backend β GitHub parsing β Gemini AI β structured output
β Removed Prisma + MongoDB completely
No unused DB, no dead code
Cleaner, safer for deadline
π Dashboard & UX
β Dashboard now renders FULL AI analysis
Repo metadata
Tech stack
Components
Architecture flow
Onboarding steps
Missing context
Confidence score
β Fixed invisible text issue (CSS / text color)
β Dashboard survives refresh using localStorage
π History & Persistence (Temporary but Solid)
β Added temporary save using localStorage
last_analysis
analysis_history (last 10 reports)
β βView Dashboardβ now works even after refresh
β Added Clear History functionality
With confirmation warning to prevent accidental deletion
β³ Loading & Feedback
β Added proper loading UI
Disabled button
Spinner
Full-screen loading overlay
Clear explanation of whatβs happening
π§Ή Cleanup & Polish
β Removed unused dashboard services/APIs
β Removed Prisma/Mongo configs & dependencies
β Fixed TypeScript errors (repo scope issue, guards, etc.)
β Kept landing page preview UI and repurposed it correctly
β Analyze page input validation fixed
Total time spent from Day 4 - 6 is 11 hours