Skip to content

Instantly share code, notes, and snippets.

@aindrajaya
Last active April 23, 2021 22:47
Show Gist options
  • Save aindrajaya/2b8c78fd2c8d0d38d5c7b7e37f5755b1 to your computer and use it in GitHub Desktop.
Save aindrajaya/2b8c78fd2c8d0d38d5c7b7e37f5755b1 to your computer and use it in GitHub Desktop.

Mini Project Batch 11

Create a movie review apps, just like imdb. Server-Side and Client-Side is fully integrated.

Don't forget to clone repository from Gitlab for each platform (link repo below).

P.s: Please make a develop branch for each platform. Don't code in the master branch, and clean code plz, ok! All the best!

Features

  • Basic authentication using JWT
  • User able to create review
  • User able to attach rating of the movie in their review
  • User able to see another user's review
  • Only admin can create movie entry

Development

  • Start Date: Tuesday, April 13st 2021
  • End Date: Monday, April 26th 2021
  • Each team will present their project at Tuesday, April 27th 2021, start from 09:00 WIB

Team & Link Repo

Team A
Team B
Team C
Team D
Team E

Backend

There's two kind of user here, first admin and then the second one is just user

Features

User API
  • Register User
    • Password should have been encrypted
    • Add JWT Token after successfully registered
    • User can't register as admin
  • Login User
  • Update User
    • Able to update User's Basic Info
    • Able to upload User's Profile Picture
Movie API
  • Create Movie (Admin Only)
    • Admin should able to create movie
  • Show Movies
    • Limit amount of data that will be displayed, up to ten entries only (Hint: It is called pagination)
    • Filtering data, show by its Tag or Category
    • Able to do search by movie title using query LIKE
  • Update Movie (Admin Only)
  • Get One Movie
    • Able to get a movie detail information
    • Able to get review for a spesific movie
  • Delete Movie (Admin Only)
    • Delete movie will also delete all of review
Review API
  • Create Review for Movie
    • Can only create one review each movie
    • Should have property rating
    • Should re-calculate average rating of the reviewed movie
  • Show Review
    • Limit amount of data that will be displayed, up to ten entries only (Hint: It is called pagination)
  • Update Review
    • User can only update his/her review
    • User can't update another user review
  • Share Review
    • Able to share review on current user's profile
  • Delete Review
    • Should re-calculate average rating of the reviewed movie

Schema

Well, it is optional if you want to follow this schema, but it is mandatory to have the same functionality

User Collection
  • There's name information
  • Has image property
  • Obviously there's email
  • Password that stored as hash
Movie Collection
  • Has title
  • Has synopsis
  • Has trailer and poster
  • Add another field if it's necessary
  • Has a average rating of the movie
Review Collection
  • Has review
  • Has rating
  • Has user information who create review

Testing

You only need to do the Integration Testing, make sure it is run on the Runner. minimum 80% Coverage, you must achieve.

Integration

Deploy your apps to AWS

The deployment should have been using CI/CD in Gitlab. And also invite your mentor in the repository, and set them as maintainer.; Don't forget to deploy your apps when you've done with a feature, so ClientSide App will able to consume. For example, you've finished your work in login or register, just deploy that feature and tell the ClientSide App Dev.

Create API Documentation

Don't forget to create API Documentation so your team able to use your API. And also, always update your Docs. For example, when you finished an Endpoint, create the docs directly for that specific endpoint. Don't forget to tell your team if there's a change

Clean code please :)

Frontend

Your job is to make the Web Application's User Interface.

Features

Authentication Service
  • Register
    • Registration Page
    • If there's JWT after succesfully registered, redirect to home
  • Login
    • Login Page
    • If JWT has already existed, don't show this page unless its unauthorized token
  • Update User Info Form
    • Able to update User's Basic Info
    • Able to upload User's Profile Picture
Review Service
  • Review Form
    • Add new movie review
    • Update a movie review

The UI and UX

  • Should follow this Design
  • Feel free to make adjusment, if its needed. But ask your mentor first.

Miscellaneous

  • Don't forget to check Backend's API Documentation

React Native

Features

Authentication Service
  • Register
    • Registration Page
    • If there's JWT after succesfully registered, redirect to home
  • Login
    • Login Page
    • If JWT has already existed, don't show this page unless its unauthorized token
  • Update User Info Form
    • Able to update User's Basic Info
    • Able to upload User's Profile Picture
Review Service
  • Review Form
    • Add a new movie review
    • Update a movie review

The UI and UX

  • Standard Design
  • Feel free to make adjusment, if its needed. But ask your mentor first.

Miscellaneous

  • You can add SplashScreen
  • You can implement AsyncStorage/RN Keychain
  • You can try using state management (ContextAPI/Redux/Redux Middleware)
  • You can implement Firebase for oAuth (optional)
  • Don't forget to check Backend's API Documentation
Just Do It ๐Ÿš€
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment