Course Catalog: React and Rest API
For this project, I created a university course catalog with administration capabilities using React, Express, and Sequelize. First, I wrote a REST API to provide a way to administer a school database which contains information about users and courses. The server and database consist of several fundamental features including:
- A data relationship between user and course tables
- Server-side and database validation, to ensure data consistency and usefulness
- A handrolled auth stack to prevent unauthorized modifications of the data
- Create, retrieve, update, and delete operations exposed via the API
Once the server-side component was completed, I implemented a React-based frontend for it. This frontend consisted of several views including ones for sign up, sign in, viewing all courses, course creation, and course update/deletion. While authorization to perform certain operations (like updates and deletions) is guaranteed by the server-side, the UI helps prevent these requests by adjusting the UI based on whether the user is the owner of a particular course.
The biggest challenge I faced when writing this course catalogue was redirecting a newly authenticated user back to the restricted webpage the user was previously on. Since React Router has evolved significantly over the past few years, a lot of the research I did turned out to be outdated, including some of my course material. Thankfully, I was able to dive deep into the documentation myself to figure out the answers I needed.