I've always been interested in web technology but never had the time to make a full stack application. I also thought that RateMyProfessor could use a lot of improvements including an open API.
What it does
Right now it has four API endpoints that can create and get professors and reviews from a database along with a half-baked Angular frontend that can currently show the JSON returned from the API.
How I built it
The API endpoints are hosted by Amazon API Gateway which invokes AWS Lambda function written in Python that run SQL Queries against a PostgreSQL database hosted on Amazon Relational Database Service. The backend was heavily assisted by the use of the Serverless framework. The frontend is an Angular Web App that has a router and calls the API endpoints when needed on page load.
Challenges I ran into
I have never used a database before so that was a bit hard to setup and learn SQL. I was familiar with Lambda and Serverless but never when they were invoked by API calls. The frontend had to be cut short because of running out of time and the fact that I have never used Angular5 before. I decided to use Angular because we use Angular 1 at my work and I like it but 5 is completely different.
Accomplishments that I'm proud of
I'm proud of the backend
What I learned
I learned Amazon API Gateways, PostgreSQL, Angular5.
What's next for ProfessorRank
This is definitely a project I will keep working on. The problem is that the database cost a bit to run but I think it's an exciting project that could teach me a lot. The front-end definitely needs to be completed (adding ability to post data), originally in the scope was going to be user management using Amazon Cognito to have users login to comment and authorize API requests.