Skip to content

Repository files navigation

AppTrack - Job Application Tracker

A comprehensive full-stack web application for tracking job applications, managing resumes, and generating CVs with AI-powered optimization.

🚀 Features

Core Features ✅

  • 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

Advanced Features (In Progress) 🚧

  • 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

🛠 Tech Stack

  • 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

📦 Installation

  1. Clone the repository

    git clone https://github.com/mmoncada1/AppTrack.com.git
    cd AppTrack.com
  2. Install dependencies

    npm install --legacy-peer-deps
  3. Set up environment variables

    cp .env.local.example .env.local

    Edit .env.local and 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"
  4. Set up the database

    npm run db:push
  5. Start the development server

    npm run dev
  6. Open the application Visit http://localhost:3000 in your browser.

📂 Project Structure

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

🗄 Database Schema

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

🚀 Available Scripts

  • npm run dev - Start development server with Turbopack
  • npm run build - Build for production
  • npm run start - Start production server
  • npm run lint - Run ESLint
  • npm run db:push - Push schema changes to database
  • npm run db:migrate - Create and run migrations
  • npm run db:studio - Open Prisma Studio

🔐 Authentication

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

🎨 UI/UX

  • 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

🔮 Upcoming Features

  1. AI Resume Optimization: Integration with OpenAI GPT for resume tailoring
  2. CV Generator: Multiple professional templates with PDF export
  3. Email Notifications: Automated reminders and follow-up emails
  4. Analytics Dashboard: Success rates and application insights
  5. Browser Extension: Auto-fill job applications
  6. Calendar Integration: Google Calendar sync for interviews
  7. Job Board Integration: Import applications from job boards

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙋‍♂️ Support

For support, email support@apptrack.com or open an issue on GitHub.


Built with ❤️ by Miguel Moncada

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages