.. 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
Displays relevant information about found internships
.. figure:: images/agtern-gui.png :alt: AgTern in Action :align: center
AgTern in Action
.. raw:: html
(back to top) .. raw:: html
.. raw:: html
(back to top) .. raw:: html
.. raw:: html
To set up your project locally and get it running, follow these simple steps.
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
Install Python <https://www.python.org/downloads/>
__
Create a virtual environment and activate it (run at repo root)
.. code-block:: shell
pip3 install virtualenv python3 -m virtualenv venv virtualenv venv
source venv/bin/activate
.\venv\Scripts\activate
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/