Skip to content

The RateMyProfessor helper to help find the best professors for your courses

License

Notifications You must be signed in to change notification settings

danknessdra/RateMyProfessors.help

Repository files navigation

RateMyProfessors.help

The RateMyProfessor helper to help find the best professors for your courses

RateMyProfessors.help

Finds the best teacher for your courses using RateMyProfessors.com to rank the best teacher for your specified course.

development dependencies

OS dependencies

openbsd

openbsd ports tree

pkg_add python3

# needs the ports tree to compile binaries
cd /usr/ports/devel/py-pip/
make install clean

cd /usr/ports/lang/go/
make install clean

ubuntu

ubuntu's golang package is outdated, follow the golang doc instructions

go lang install

sudo apt-get install python3 python3-pip 

go dependencies

go get github.com/julienschmidt/httprouter

python dependencies

pip install "requests==2.25.1" beautifulsoup4 RateMyProfessorAPI psycopg2 python-dotenv

deployment

linux (docker)

  1. install docker
  2. setup docker-compose.yml "./examples/docker-compose.yml"
  3. docker-compose up -d

openbsd

openbsd ports tree

# need the ports tree to install
cd /usr/ports/lang/go/
make install clean

git clone <repository>
cd <repository>
go build
./webserver

for setting up tls with httpd, relayd, and acme-client view ./examples

security practices

create a service user and service group with own dir in /var (_rmp) have rc.d service run as service user

for ssl support, create ssl-cert group chown keys/certs add service user to group

for postgresql, follow pkg-readme for best practice

SEE ALSO

httpd(8), httpd.conf(5), acme-client(1), relayd(8), relayd.conf(5)

resources

generating certs

relayd

development workflow

  1. create issue for problem working on
  2. create branch based off issue(s)
  3. create pull request, code review if necessary

technology stack

frontend : [ html, css , javascript ]

backend : go lang

webscraping : python

reverse proxy : relayd

tls : [ acme-client , httpd ]

ci/cd: jenkins

test commit