TechTrack is a comprehensive job search management platform tailored for the tech industry, streamlining company research and resume management with ease and efficiency. It features a dynamic list of companies with detailed information and job links, alongside robust resume management capabilities with version control. The platform integrates with a CSV file that works closely with a PostgreSQL database, allowing users to efficiently import, update, and manage company data.
- Dynamic Company List: Manage a list of companies with detailed job titles, locations, industries, and websites.
- CSV Integration: Import and sync company data from a CSV file, ensuring data consistency and operational efficiency with PostgreSQL.
- Search Companies: Search for companies based on job title, location, and other attributes.
- Wikipedia Integration: Fetch company details directly from Wikipedia using the company name.
- Upload Resumes: Upload resumes and associate them with specific job titles or fields.
- Version Control: Manage multiple versions of resumes tailored to different job applications.
- Download Resumes: Download resumes in various formats (PDF, Word, or Text).
- View Resumes: Preview resume content directly in the browser.
- Edit/Delete Resumes: Update or delete resumes as needed.
- FastAPI: Backend framework used to handle API requests and business logic.
- React & TypeScript: Modern frontend for dynamic, responsive interfaces.
- PostgreSQL: Relational database optimized for complex queries and data integrity.
- SQLAlchemy: ORM used for interacting with the PostgreSQL database.
- Pandas: Python library for handling and manipulating CSV data.
- Wikipedia API: Fetches company descriptions and details.
- Backend:
- Python 3.x
- PostgreSQL
- Frontend:
- npm (Node Package Manager)
-
Backend Setup:
- Navigate to the
backenddirectory:cd backend - Install the required Python packages:
pip install -r requirements.txt
- Important: Configure your database connection string in the
.envfile (refer to.env.examplefor the required variables).
- Navigate to the
-
Frontend Setup:
- Navigate to the
frontenddirectory:cd frontend - Install frontend dependencies:
npm install
- Navigate to the
-
Running the Project:
- Backend: Start the FastAPI backend server:
uvicorn main:app --reload
- Frontend: Start the React frontend server:
npm start
- Backend: Start the FastAPI backend server:
GET /companies: Fetch the list of companies from the database.POST /companies: Add a new company to the database.- Example:
{ "name": "Tech Solutions Company", "location": "Israel", "industry": "Software" }
- Example:
PUT /companies/{company_id}: Update company details.DELETE /companies/{company_id}: Delete a company from the database.POST /import-companies: Upload a CSV file to import company data and synchronize it with the PostgreSQL database.
GET /resumes: Fetch a list of uploaded resumes.POST /resumes/upload: Upload a new resume.PUT /resumes/{resume_id}: Update an existing resume.DELETE /resumes/{resume_id}: Delete a resume.GET /resumes/download/{filename}: Download a resume by filename.
GET /company-details/{company_name}: Fetch company details from Wikipedia by name.
Feel free to fork this repository, submit pull requests, or open issues if you encounter any bugs or have suggestions for improvements.
- Name: Eden Oved
- Email: edenoved.swe@gmail.com
- LinkedIn: https://www.linkedin.com/in/edenoved/