Skip to content

sidd3103/AgTern

 
 

Repository files navigation

Contributors Forks Stargazers Issues


Logo

AgTern

Howdy! AgTern is a program that helps students find, track, and apply to internships by scraping the web for job postings. Based off a student profile (major, graduation date, industry interests, etc.), it retrieves scraped internships that are most relevant to the student. AgTern was built because searching for internships that match your interests and situation can be hard. We wanted the process to be as seamless as possible so that students can focus on applying and not searching.
Explore the docs (TODO)»
Read the wiki »

View Demo · Report Bug

Table of Contents
  1. About The Project
  2. Getting Started
  3. Contributing
  4. Contact
  5. Acknowledgments

About The Project

Current Features

  • Scrapes over 30 company job sites (over 1500 internships!)
  • Search interface to search job keywords
  • Displays relevant information about found internships
    • Company
    • Title
    • Date of internship (e.g. Summer 2023)
    • Link to apply

Images

AgTern in Action

(back to top)

Built With

  • Python
  • FastAPI
  • SQLite
  • Angular
  • DigitalOcean

(back to top)

Getting Started

To set up your project locally and get it running, follow these simple steps.

Installation

Complete all the parts below (in order) for a complete installation.

Part 1: Git Setup

  1. Install Git
  2. Clone the repository: git clone https://github.com/johndpjr/AgTern.git
  3. Navigate to the AgTern directory
  4. Change to dev branch: git checkout dev

Part 2: Backend Setup

  1. Install Python
  2. Create a virtual environment and activate it (run at repo root)
    pip3 install virtualenv
    python3 -m virtualenv venv
    virtualenv venv
    
    # Linux & MacOS
    source venv/bin/activate
    # Windows
    .\venv\Scripts\activate
  3. Install Python packages: pip3 install -r requirements.txt

Part 3: Frontend Setup

  1. Install NodeJS
  2. Navigate to the frontend directory
  3. Build the frontend
    npm install
    npm run build

(back to top)

Running

Note: if you are running the program for the first time, you either need to download the database (see #file-upload in Discord for file) or run a scraping job to populate jobs in a database

Option 1: Command Line

Common commands to run the program (make sure you're in the AgTern directory):

Run frontend and backend:

  1. Navigate to the frontend directory
  2. npm run start
  3. (Open a new terminal) Run in repo root: python3 -m backend --dev --no-scrape
  4. Goto localhost:8000 in your web browser

Run scraper command (only scrape): python3 -m agtern --dev --scrape-only --save-jobs

Option 2: PyCharm

If you are using PyCharm (it's free for students!), run configurations are already defined in the .idea folder. You should be able to run all configurations without issue.

Option 3: Docker Run

  1. Install Docker
  2. Start Docker container: docker-compose up
  3. Goto localhost:8000 in your web browser

Note: Right now, the container won't auto-reload (detect local changes and rebuild), but this is planned!

(back to top)

Contributing

Contributions are only open to students currently enrolled at Texas A&M University, as this is a club project for Aggie Coding Club.

Contributions give life to the project: without them this project dies.

Our list of tasks can be found on our GitHub projects page. Feel free to add issues to the project: these can be bugs, feature requests, or just observations. If you are interested in a ticket (that is not assigned already), assign it to yourself, make your changes, and create a pull request completing the task.

  1. Assign the task to yourself and set the status as "In Progress"
  2. Ensure you're on the dev branch with the latest changes
    git checkout dev
    git pull
  3. Create your feature branch: git checkout -b feature/ticket#/short-description
  4. Implement feature/bug fix and stage your changes: git add .
  5. Commit your changes with the following format: git commit -m 'AT-ticket#: Add some feature
  6. Push to the remote branch: git push
  7. Open a pull request to merge your feature branch into dev

(back to top)

Contact

Project Manager - John Powell - Email

Project Link: https://github.com/johndpjr/AgTern

(back to top)

Acknowledgments

  • All contributors: No matter the amount, each contributor on our team is appreciated for the work they do. Thank you!
  • Aggie Coding Club: Continues to provide resources, contributors, and project advice. Thank you ACC!

(back to top)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 48.3%
  • TypeScript 33.6%
  • SCSS 9.1%
  • HTML 8.6%
  • Dockerfile 0.4%