A comprehensive full-stack web application for tracking job applications, managing resumes, and generating CVs with AI-powered optimization.
- Job Application Dashboard: Complete CRUD system for managing job applications
- Status Management: Track applications through Wishlist, Applied, Interview, Offer, Rejected stages
- Resume & Document Upload: Upload and manage multiple resume versions and cover letters
- Authentication: Secure user registration and login system
- Responsive Design: Beautiful, responsive UI with Tailwind CSS
- AI Resume Tailoring: OpenAI integration for resume optimization based on job descriptions
- Smart CV Generator: Dynamic CV generation with multiple templates
- Email Reminders: Automated follow-up reminders and notifications
- Analytics & Insights: Application success rates and progress tracking
- Job Description Parser: Auto-extract job details from URLs
- Frontend: Next.js 15, React 18, TypeScript, Tailwind CSS
- Backend: Next.js API Routes, Prisma ORM
- Database: SQLite (dev) / PostgreSQL (production)
- Authentication: NextAuth.js
- UI Components: Custom components with Radix UI primitives
- Icons: Lucide React
- Styling: Tailwind CSS with custom design system
-
Clone the repository
git clone https://github.com/mmoncada1/AppTrack.com.git cd AppTrack.com -
Install dependencies
npm install --legacy-peer-deps
-
Set up environment variables
cp .env.local.example .env.local
Edit
.env.localand add your configuration:DATABASE_URL="file:./dev.db" NEXTAUTH_URL="http://localhost:3000" NEXTAUTH_SECRET="your-secret-key-here" OPENAI_API_KEY="your-openai-api-key" EMAIL_SERVER_HOST="smtp.gmail.com" EMAIL_SERVER_PORT=587 EMAIL_SERVER_USER="your-email@gmail.com" EMAIL_SERVER_PASSWORD="your-app-password" EMAIL_FROM="your-email@gmail.com"
-
Set up the database
npm run db:push
-
Start the development server
npm run dev
-
Open the application Visit http://localhost:3000 in your browser.
src/
├── app/ # Next.js App Router
│ ├── (dashboard)/ # Dashboard layout group
│ │ ├── dashboard/ # Main dashboard page
│ │ ├── applications/ # Job applications pages
│ │ ├── documents/ # Document management
│ │ └── layout.tsx # Dashboard layout
│ ├── api/ # API routes
│ │ ├── auth/ # Authentication APIs
│ │ └── applications/ # Application CRUD APIs
│ ├── auth/ # Authentication pages
│ └── globals.css # Global styles
├── components/ # Reusable UI components
│ ├── ui/ # Base UI components
│ ├── auth-provider.tsx # Auth context provider
│ └── navigation.tsx # Main navigation
├── lib/ # Utilities and configurations
│ ├── auth.ts # NextAuth configuration
│ ├── prisma.ts # Database client
│ ├── utils.ts # Helper functions
│ └── validations.ts # Zod schemas
└── types/ # TypeScript type definitions
The application uses Prisma with the following main models:
- User: User authentication and profile data
- JobApplication: Core job application tracking
- Resume/CoverLetter: Document management
- Interview: Interview scheduling and tracking
- Reminder: Follow-up reminders and notifications
- Profile: User profile for CV generation
npm run dev- Start development server with Turbopacknpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLintnpm run db:push- Push schema changes to databasenpm run db:migrate- Create and run migrationsnpm run db:studio- Open Prisma Studio
The app uses NextAuth.js with credentials provider. Users can:
- Register with email and password
- Sign in to access their dashboard
- Secure session management with JWT
- Modern, clean design with Tailwind CSS
- Responsive layout for all screen sizes
- Accessible components with Radix UI primitives
- Consistent design system with custom color palette
- Interactive elements with smooth animations
- AI Resume Optimization: Integration with OpenAI GPT for resume tailoring
- CV Generator: Multiple professional templates with PDF export
- Email Notifications: Automated reminders and follow-up emails
- Analytics Dashboard: Success rates and application insights
- Browser Extension: Auto-fill job applications
- Calendar Integration: Google Calendar sync for interviews
- Job Board Integration: Import applications from job boards
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support, email support@apptrack.com or open an issue on GitHub.
Built with ❤️ by Miguel Moncada