Skip to content

Instantly share code, notes, and snippets.

@isumizumi
Created June 10, 2021 13:10
Show Gist options
  • Save isumizumi/1582ff298d247d61c6504c11d178fcb9 to your computer and use it in GitHub Desktop.
Save isumizumi/1582ff298d247d61c6504c11d178fcb9 to your computer and use it in GitHub Desktop.
Mini Project GA#12

Mini Project Batch 12

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: Friday, June 11th 2021
  • End Date: Friday, June 18th 2021
  • Each team will present their project at Monday, November 21th 2021

Team & Link Repo

Team A
  • Team Member:
    • Backend:
      • Yusuf Prawiro
      • Nadia Darin Putri Adinda
      • Rayi Abipraya Wahyuki
      • Ramzy Syahrul Ramadhan
    • Frontend:
      • Aditya Dwi Maryanto
      • Vega Veronica
      • Nicolaus Satria Hasta Purnama
    • React Native:
      • Alwi Ahdi Fahrozi
      • Naufal Ghifari
      • I Putu Kurnia Adi Saputra
  • Link repo: https://gitlab.com/binarxglints_batch12/miniproject/team-a
Team B
  • Team Member:
    • Backend:
      • Anggita Ruzty
      • Amalia Putri Yulandi
      • Budi Hartono
      • Mohamad Nouval Abdel
    • Frontend:
      • Angela V G Tampubolon
      • Indriani Savitri
      • Emil Ferdinan Akbar
    • React Native:
      • Elok Marta Saputra
      • Dadang Sutanto
      • Tinar Satria
  • Link repo: https://gitlab.com/binarxglints_batch12/miniproject/team-b
Team C
  • Team Member:
    • Backend:
      • Isfan Fazar Satria
      • Nandra Putra Aryanto
      • Thio Rivanda Ramadhan
      • Ade Firmansyah
      • Dimas Jayusman
    • Frontend:
      • Dollyton Hutapea
      • Dian Wijaya
      • Yeyen Tri Utami
    • React Native:
      • Dany Arkham
      • Dewi Anggraini
      • Komang Wahyudi Suardika
  • Link repo: https://gitlab.com/binarxglints_batch12/miniproject/team-c
Team D
Team E
Team F
  • Team Member:
    • Backend:
      • Beni Iskandar Firdaus Lubis
      • Stephen Lambok Marbun
      • Ilham Adji Bintang
      • Harry Hermanan
    • Frontend:
      • Agus Zohari Hidayat
      • Jadhuk Herlambang Wibi Nugroho
      • Fajar Wahyu Ananto
    • React Native:
      • Reo Al Varich
      • Endi Fernanda Wicaksono
  • Link repo: https://gitlab.com/binarxglints_batch12/miniproject/team-f

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

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
  • You can try using state management (Redux & Redux Middleware/Saga)
  • 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