IU1004 / cv-build-tracker

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

Repository from Github https://github.comIU1004/cv-build-trackerRepository from Github https://github.comIU1004/cv-build-tracker

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

About

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


Languages

Language:JavaScript 75.9%Language:Python 21.0%Language:HTML 1.8%Language:CSS 1.3%