AI-powered career preparation. Close skill gaps, ace interviews, and get your resume noticed.
- Skills Gap Analysis - Tell it your current skills and target role. It maps exactly what you're missing and what to learn first.
- AI Mock Interviews - Practice with an AI that asks real questions, evaluates your answers, and gives honest feedback.
- Resume Optimizer - Paste your resume and a job description. Get rewritten copy, stronger keywords, and ATS-ready formatting.
| Category | Technology |
|---|---|
| Frontend | |
| Build | |
| Styling | |
| Auth & DB | |
| AI | |
| Animations |
git clone https://github.com/gloooomed/Abhyas.git
cd Abhyas
npm installCreate a .env.local file:
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
VITE_GROQ_API_KEY=your_groq_api_keynpm run devAbhyas/
├── src/
│ ├── assets/
│ │ └── abhyas-logo.gif # Animated app logo
│ ├── components/
│ │ ├── ui/ # Shared shadcn/ui primitives
│ │ ├── LandingPage.tsx # Marketing / hero page
│ │ ├── Dashboard.tsx # Post-login home
│ │ ├── SkillsGapAnalysis.tsx # Skills gap feature
│ │ ├── MockInterview.tsx # AI interview feature
│ │ ├── ResumeOptimizer.tsx # Resume rewrite feature
│ │ ├── HistoryPage.tsx # User history and results
│ │ ├── Navigation.tsx # Top nav bar
│ │ ├── Logo.tsx # Logo component (GIF + text)
│ │ ├── SignInPage.tsx # Custom sign-in page
│ │ ├── AboutUs.tsx # About page
│ │ ├── TermsPage.tsx # Terms of Service
│ │ ├── PrivacyPage.tsx # Privacy Policy
│ │ ├── theme-provider.tsx # Dark/light mode context
│ │ ├── theme-toggle.tsx # Theme toggle button
│ │ └── lenis-provider.tsx # Smooth scroll provider
│ ├── contexts/
│ │ └── AuthContext.tsx # Supabase Authentication State
│ ├── hooks/
│ │ ├── useRateLimit.ts # Dedupes identical requests
│ │ └── index.ts # Hook barrel exports
│ ├── lib/
│ │ ├── ai.ts # Groq AI client & prompts
│ │ ├── speech.ts # Web Speech API wrapper
│ │ ├── cache.ts # Cache utilities
│ │ ├── supabase.ts # Supabase client config
│ │ ├── saveGuard.ts # DB deduplication logic
│ │ └── utils.ts # Shared helpers (cn, etc.)
│ ├── App.tsx # Routes & layout shell
│ ├── main.tsx # Entry point + providers
│ └── index.css # Global styles & design tokens
├── public/ # Static assets
├── .env.example # Environment variable template
├── index.html # Vite HTML entry
├── vite.config.ts
├── tailwind.config.js
└── package.json
Please see our Contributing Guide and Code of Conduct for details on how to get involved.
Make sure you have the following before contributing:
| Requirement | Version | Notes |
|---|---|---|
| Node.js | v18+ | LTS recommended |
| Git | Any recent | For version control |
| Groq API Key | - | Free tier works fine |
| Supabase Account | - | Free plan is sufficient |
Set up your local environment using the steps in Getting Started above.
Contributions are welcome! Here's how to get involved:
- Fork the repository
- Create a branch for your feature or fix:
git checkout -b feat/your-feature-name
- Make your changes and commit with a clear message:
git commit -m "feat: add your feature description" - Push to your fork:
git push origin feat/your-feature-name
- Open a Pull Request against
mainand describe what you changed and why.
- Keep PRs focused - one feature or fix per PR.
- Follow the existing code style (TypeScript strict, Tailwind classes, Framer Motion for animations).
- For larger changes, open an issue first to discuss the approach.
MIT with Commons Clause - free for personal and educational use. Commercial use not permitted without permission. See LICENSE for details.
Abhyas (अभ्यास) means "practice" in Sanskrit.
