Skip to content

Instantly share code, notes, and snippets.

@isumizumi
Last active November 6, 2020 09:47
Show Gist options
  • Save isumizumi/b9d4a4d829deff971559b11d97f9d509 to your computer and use it in GitHub Desktop.
Save isumizumi/b9d4a4d829deff971559b11d97f9d509 to your computer and use it in GitHub Desktop.
MiniProject#Batch8

Mini Project Batch 8

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: Monday, November 9th 2020
  • End Date: Thursday, November 19th 2020
  • Each team will present their project at Friday, November 20th 2020, start from 09:00 WIB

Team & Link Repo

Team A
Team B
Team C
Team D
Team E
Team F
Team G

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
  • Login User
  • Update User
    • Able to update User's Basic Info
    • Able to upload User's Profile Picture
Review API
  • Create Review for Movie
    • Can only create one review each movie
    • Should have property rating
  • Show Review
    • 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 Review
  • Share Review
    • Able to share review on current user's profile
  • Delete Review
    • Should decrease the overall rating of the 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

Testing

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

Integration

Deploy your apps to Heroku

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

  • Should follow this 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

"You can't CAN do it!"

Good luck 👍 😉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment