Unit 4: Second language
For this project you have a few choices:
- Using the second language you chose, reproduce the back end of a Project 3 from your group
- Build a full stack app using the templating views of your respective language
- Build and deploy an API to support a React client we will give you most of the code for
- Build and deploy an application that serves up a React app as a client side asset that hits its own RESTful endpoints
This is a partner Project.
Deliverables & Requirements
- A RESTful API built in your second language that supports consuption by a project 3 app from your group.
- A model that has at least two fields, with full CRUD implemented on that model.
- A User model (if your framework comes with one, you can use/adapt that) that allows that user to perform those CRUD actions.
- Correctly implemented relations (and table SQL, if you chose Ruby) between the User and the other (Movie) model. Additional relations/models are optional, and should only be implemented after you complete the requirements.
- Proper login, logout, and registration functionality
- Create proper error messages on the client if the user does not have access, or if the username or password is already taken.
- The API/server/back end repo should be a completely separate repo from the React/client/front end repo from the very beginning, and there should be several commits in the API as you build each route and test it (Postman!).
- Proper CORS implementation in your API, so that...
- ...your deployed React app can consume your deployed API.
Not quite a stretch goal
- Try to make your front end and back end "work" both on your local machine ("development") and when deployed ("production"). This will likely involve careful researching of both CORS and environment variables. There is extensive documentation and a panopoly of articles about this online.
Add a third party API from the back end
Add json web tokens to secure your api further token auth python
If you used something like OMDB or TMDB, you could...
- Make it so that only actual movies that are validated via a third party movie API can be added, and only one time
- (i.e. update your model to contain the 3rd party API ID, or something similarly unique, to be sure you're only referring to exactly the correct movie)
Add pagination to your API. For example, if your user had 126 movies in the database, this HTTP request should return movies 21-40:
You could then implement pagination in your front end as well.
Add animations to the front end