/cv-build-tracker

A modern web application for tracking and managing your job applications and CV building process. Built with React, Flask, and PostgreSQL.

Primary LanguageJavaScript

CV Build Tracker

A modern web application for tracking and managing your job applications and CV building process. Built with React, Flask, and PostgreSQL.

๐Ÿš€ Features

  • Application Tracking: Track job applications, interviews, and follow-ups
  • CV Management: Manage multiple CV versions and track their performance
  • Interactive Dashboard: Visualize your application statistics and success rates
  • Drag-and-Drop Interface: Intuitive job application status management
  • Responsive Design: Works seamlessly on desktop and mobile devices
  • Real-time Updates: Instant feedback on application status changes
  • Data Visualization: Charts and graphs for application analytics

๐Ÿ—๏ธ Tech Stack

Frontend

  • React 18
  • Redux Toolkit for state management
  • Material-UI and Tailwind CSS for styling
  • React Router for navigation
  • React Beautiful DnD for drag-and-drop functionality
  • Chart.js for data visualization
  • Axios for API communication
  • React Toastify for notifications

Backend

  • Flask (Python)
  • SQLAlchemy ORM
  • PostgreSQL database
  • Flask-Migrate for database migrations
  • Flask-CORS for cross-origin resource sharing
  • Alembic for database version control

๐Ÿ› ๏ธ Prerequisites

  • Node.js (v16 or higher)
  • Python 3.8 or higher
  • PostgreSQL
  • Git

๐Ÿ“ฆ Installation

Backend Setup

  1. Navigate to the backend directory:

    cd backend
  2. Create and activate a virtual environment:

    # Windows
    python -m venv env
    .\env\Scripts\activate
    
    # Unix/MacOS
    python3 -m venv env
    source env/bin/activate
  3. Install dependencies:

    pip install -r requirements.txt
  4. Set up environment variables: Create a .env file in the backend directory with the following variables:

    FLASK_APP=run.py
    FLASK_ENV=development
    DATABASE_URL=postgresql://username:password@localhost:5432/cv_tracker
    SECRET_KEY=your-secret-key
    
  5. Initialize the database:

    flask db upgrade
  6. Run the backend server:

    flask run

Frontend Setup

  1. Navigate to the frontend directory:

    cd frontend
  2. Install dependencies:

    npm install
  3. Create a .env file in the frontend directory:

    REACT_APP_API_URL=http://localhost:5000
    
  4. Start the development server:

    npm start

๐Ÿš€ Running the Application

  1. Start the backend server (from the backend directory):

    flask run
  2. Start the frontend development server (from the frontend directory):

    npm start
  3. Access the application at http://localhost:3000

๐Ÿงช Testing

Backend Tests

cd backend
python -m pytest

Frontend Tests

cd frontend
npm test

๐Ÿ“ Project Structure

cv-build-tracker/
โ”œโ”€โ”€ backend/
โ”‚   โ”œโ”€โ”€ app/
โ”‚   โ”‚   โ”œโ”€โ”€ models/
โ”‚   โ”‚   โ”œโ”€โ”€ routes/
โ”‚   โ”‚   โ””โ”€โ”€ services/
โ”‚   โ”œโ”€โ”€ migrations/
โ”‚   โ”œโ”€โ”€ requirements.txt
โ”‚   โ””โ”€โ”€ run.py
โ”œโ”€โ”€ frontend/
โ”‚   โ”œโ”€โ”€ public/
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ components/
โ”‚   โ”‚   โ”œโ”€โ”€ pages/
โ”‚   โ”‚   โ”œโ”€โ”€ redux/
โ”‚   โ”‚   โ”œโ”€โ”€ services/
โ”‚   โ”‚   โ””โ”€โ”€ utils/
โ”‚   โ”œโ”€โ”€ package.json
โ”‚   โ””โ”€โ”€ tailwind.config.js
โ””โ”€โ”€ README.md

๐Ÿค Contributing

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

๐Ÿ“ License

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

๐Ÿ‘ฅ Authors

  • Your Name - Initial work

๐Ÿ™ Acknowledgments

  • Thanks to all contributors who have helped shape this project
  • Inspired by the need for better job application tracking tools