johndpjr / AgTern

20 stars 5 forks source link

.. role:: raw-latex(raw) :format: latex ..

.. raw:: html

.. raw:: html

.. raw:: html

|Contributors| |Forks| |Stargazers| |Issues|

.. raw:: html

.. container::

.. raw:: html

  <div align="center">
    <img src="https://github.com/johndpjr/AgTern/raw/main/images/agtern-logo.png" width="80" height="80" />
  </div>

.. raw:: html

  <h3 align="center">
     AgTern
  </h3>

.. raw:: html

...

.. raw:: html

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

.. raw:: html

.. raw:: html

.. raw:: html Table of Contents .. raw:: html .. raw:: html
    .. raw:: html
  1. About The Project .. raw:: html
      .. raw:: html
    • Current Features .. raw:: html
    • .. raw:: html
    • Images .. raw:: html
    • .. raw:: html
    • Built With .. raw:: html
    • .. raw:: html
    .. raw:: html
  2. .. raw:: html
  3. Getting Started .. raw:: html
      .. raw:: html
    • Installation .. raw:: html
    • .. raw:: html
    • Running .. raw:: html
    • .. raw:: html
    .. raw:: html
  4. .. raw:: html
  5. Contributing .. raw:: html
  6. .. raw:: html
  7. Contact .. raw:: html
  8. .. raw:: html
  9. Acknowledgments .. raw:: html
  10. .. raw:: html
.. raw:: html

.. raw:: html

About The Project

Current Features

Images

.. figure:: images/agtern-gui.png :alt: AgTern in Action :align: center

AgTern in Action

.. raw:: html

(back to top) .. raw:: html

Built With

.. raw:: html

(back to top) .. raw:: html

.. raw:: html

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 <https://git-scm.com/downloads>`__
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 <https://www.python.org/downloads/>__

  2. Create a virtual environment and activate it (run at repo root)

    .. code-block:: shell

    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 <https://nodejs.org/en>`__
2. Navigate to the ``frontend`` directory
3. Build the frontend

   .. code-block:: shell

      npm install
      npm run build

.. raw:: html

   <p align="right">(<a href="#readme-top">back to top</a>)</p>

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 <https://www.jetbrains.com/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 <https://www.docker.com/>`__
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!

.. raw:: html

   <p align="right">(<a href="#readme-top">back to top</a>)</p>

   <!-- CONTRIBUTING -->

.. raw:: html

   <!-- CONTRIBUTING -->

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 <https://github.com/users/johndpjr/projects/2/views/1>`__.
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

   .. code-block:: bash

         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 <https://github.com/johndpjr/AgTern/pulls>`__ to merge your feature branch into ``dev``

.. raw:: html

   <p align="right">(<a href="#readme-top">back to top</a>)</p>

   <!-- CONTACT -->

Contact
=======

Project Manager - John Powell -
`Email <mailto:johndpowell02@gmail.com>`__

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

.. raw:: html

   <p align="right">

(back to top)

.. raw:: html

   </p>

.. raw:: html

   <!-- ACKNOWLEDGMENTS -->

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!

.. raw:: html

   <p align="right">

(back to top)

.. raw:: html

   </p>

.. raw:: html

   <!-- MARKDOWN LINKS & IMAGES -->

.. raw:: html

   <!-- https://www.markdownguide.org/basic-syntax/#reference-style-links -->
.. |Contributors| image:: https://img.shields.io/github/contributors/johndpjr/AgTern.svg?style=for-the-badge
   :target: https://github.com/johndpjr/AgTern/graphs/contributors
.. |Forks| image:: https://img.shields.io/github/forks/johndpjr/AgTern.svg?style=for-the-badge
   :target: https://github.com/johndpjr/AgTern/network/members
.. |Stargazers| image:: https://img.shields.io/github/stars/johndpjr/AgTern.svg?style=for-the-badge
   :target: https://github.com/johndpjr/AgTern/stargazers
.. |Issues| image:: https://img.shields.io/github/issues/johndpjr/AgTern.svg?style=for-the-badge
   :target: https://github.com/johndpjr/AgTern/issues
.. |Python| image:: https://img.shields.io/badge/python-306998?style=for-the-badge&logo=python&logoColor=white
   :target: https://www.python.org/
.. |FastAPI| image:: https://img.shields.io/badge/fastapi-009485?style=for-the-badge&logo=fastapi&logoColor=white
   :target: https://fastapi.tiangolo.com/
.. |SQLite| image:: https://img.shields.io/badge/sqlite-44a2d4?style=for-the-badge&logo=sqlite&logoColor=white
   :target: https://www.sqlite.org/index.html
.. |Angular| image:: https://img.shields.io/badge/Angular-DD0031?style=for-the-badge&logo=angular&logoColor=white
   :target: https://angular.io/
.. |DigitalOcean| image:: https://img.shields.io/badge/DigitalOcean-%230167ff.svg?style=for-the-badge&logo=digitalOcean&logoColor=white
   :target: https://www.digitalocean.com/