InterviewMin is a platform that simplifies the process of tracking interview experiences. Users can paste interview experiences from various sources (LeetCode, Reddit, GeeksForGeeks, or personal notes), and the system uses AI (Groq) to extract and organize them into structured records.
🔗 Live Project: https://interviewmin.vercel.app
- Multi-Source Support: Import experiences from LeetCode, Reddit, GfG, and custom sources.
- AI-Powered Extraction: Automatically extracts company, position, rounds, location, and questions using Large Language Models (LLM).
- Structured Records: distinct separation of interview metadata and specific questions.
- Interview Management: Create, read, update, and delete (CRUD) interview experiences.
- Company Tracking: Automatic organization of interviews by company hierarchy.
- Analytics: Statistics on interview trends, top companies, and user activity.
- Secure Authentication: JWT-based authentication with refresh token rotation and session management.
- Role-Based Access: Standard user and admin roles.
- Language: Go (Golang)
- Framework: Gin Web Framework
- Database: PostgreSQL
- AI Integration: Groq API
- Authentication: JWT (JSON Web Tokens)
- Logging: Zap (Structured logging)
- Containerization: Docker & Docker Compose
backend/
├── cmd/api/ # Application entrypoint
├── internal/
│ ├── auth/ # JWT & auth logic
│ ├── config/ # Configuration loading
│ ├── database/ # DB connection & migrations
│ ├── fetcher/ # External content fetchers
│ ├── groq/ # AI Client integration
│ ├── handler/ # HTTP Request handlers
│ ├── logger/ # Zap logger setup
│ └── repository/ # Data access layer
├── pkg/
│ ├── model/ # Data models
│ ├── response/ # Standardized API response helpers
│ └── *.go # Utility functions
└── README.mdRun Migrations:
migrate -path internal/database/migrations -database "postgres://postgres:postgres@localhost:5432/interviewmin?sslmode=disable" upCreate New Migration:
migrate create -ext sql -dir ./internal/database/migrations -seq create_questions_tableNote: You need to have
golang-migrateinstalled on your machine.
Start Services:
docker-compose up -dStop Services:
docker-compose down- Rate Limiting: Configurable token bucket rate limiting per IP.
- Graceful Shutdown: Proper handling of in-flight requests during shutdown.
- Secure Headers: CORS policy enforcement.
- Input Validation: Strict JSON binding and validation.