About • Features • Todo • How it works • Tech Stack • How to contribute • Author • License
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
- 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
- E-mail validation
- Create custom movie lists
- Dashboard with insights on user behavior
- Pre-requisites
- Clone this repository
- Set the environment variables
- Run the back-end server
- Run the front-end server
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.
git clone https://github.com/alexbraga/cine-log.git
- Create a
.env
file at the root of bothclient/
andserver/
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=
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
Navigate to the client folder
cd cine-log/client
Install the dependencies
npm install
Run the client in development mode
npm start
- The application will automatically open on your default browser at http://localhost:3000
The following tools were used in the construction of the project:
- Axios
- Date-fns
- dayjs
- Material UI
- react-oauth/google
- React Router v6
- React Scripts
- React Strap
- React Table
See the file package.json
- Axios
- Cookie Parser
- CORS
- dotENV
- Google Auth Library
- JWT
- Mongoose
- Passport
- Passport JWT
- Passport Local Mongoose
- SendGrid
See the file package.json
- External API: TMDb
- API Testing: Postman
- Editor: Visual Studio Code
- Font: Montserrat
- Fork the project
- Create a new branch with your changes:
git checkout -b my-amazing-feature
- Save your changes and create a commit message (in present tense) telling what you did:
git commit -m "Add my amazing feature"
- Submit your changes:
git push origin my-amazing-feature
- Create a pull request
- At the moment, any help with making the app fully accessible for visually impaired people will be very much appreciated.
This project is under the MIT License.