Skip to content

A lightweight Web App focused on keeping track of watched movies alongside with other records, like ratings, reviews and watch count.

License

Notifications You must be signed in to change notification settings

alexbraga/cine-log

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Keep a diary of watched movies, give ratings and add your own reviews

GitHub last commit GitHub license Netlify build status

Status: In Production

AboutFeaturesTodoHow it worksTech StackHow to contributeAuthorLicense

About

Cine.log is a lightweight Web App with fully responsive layout focused on keeping track of watched movies alongside with other records, like ratings, reviews and watch count. It's built with MERN stack, with a RESTful API and using a front-end almost entirely developed with Material UI library.

Available at https://cinelog-js.netlify.app


Features

  • Authentication with e-mail and password or via Google OAuth 2.0
  • Password resetting
  • RESTful API
  • JWT based protection for API endpoints
  • Access token and refresh token delivering
  • Movie searching (data provided by TMDb)
  • Access to movie info (data provided by TMDb)
  • Movie list sorting and filtering
  • Save/edit ratings and reviews
  • Edit user info and password change

Todo

  • E-mail validation
  • Create custom movie lists
  • Dashboard with insights on user behavior

How it works

  1. Pre-requisites
  2. Clone this repository
  3. Set the environment variables
  4. Run the back-end server
  5. Run the front-end server

Pre-requisites

Before getting started, you'll need to have the following tools installed on your machine:

In addition, you'll need to register a [free] accout at SendGrid and TMDb as well. You might also want an editor to work with the code, like VS Code.

Clone this repository

git clone https://github.com/alexbraga/cine-log.git

Set the environment variables

  • Create a .env file at the root of both client/ and server/ folders, and place the following in each, with their respective values:

Front-end (client/.env)

#Environment
NODE_ENV=

#App URLs
REACT_APP_CLIENT_URL_DEV=
REACT_APP_CLIENT_URL_PROD=
REACT_APP_SERVER_URL_DEV=
REACT_APP_SERVER_URL_PROD=

#Google
REACT_APP_GOOGLE_CLIENT_ID=

Back-end (server/.env)

#Environment
NODE_ENV=

#Database
MONGO_URI_DEV=
MONGO_URI_PROD=

#TMDb
TMDB_API_KEY=

#SendGrid
SENDGRID_API_KEY=
FROM_EMAIL=

#App URLs
CLIENT_URL_DEV=
CLIENT_URL_PROD=
SERVER_URL_DEV=
SERVER_URL_PROD=

#JWT
JWT_SECRET=
REFRESH_JWT_SECRET=

#Google
GOOGLE_CLIENT_ID=

Running the back-end

Navigate to the server folder

cd cine-log/server

Install the dependencies

npm install

Run the server in development mode

node server.js
  • The server will start at localhost:5000

Running the front-end

Navigate to the client folder

cd cine-log/client

Install the dependencies

npm install

Run the client in development mode

npm start

Tech Stack

The following tools were used in the construction of the project:

Front-end

Language

Main library

Dependencies

See the file package.json

Back-end

Language

Framework

Dependencies

See the file package.json

Utilities


How to contribute

  1. Fork the project
  2. Create a new branch with your changes:
git checkout -b my-amazing-feature
  1. Save your changes and create a commit message (in present tense) telling what you did:
git commit -m "Add my amazing feature"
  1. Submit your changes:
git push origin my-amazing-feature
  1. Create a pull request
  • At the moment, any help with making the app fully accessible for visually impaired people will be very much appreciated.

Author

Alexandre Braga

LinkedIn  E-Mail

License

This project is under the MIT License.

About

A lightweight Web App focused on keeping track of watched movies alongside with other records, like ratings, reviews and watch count.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages