Skip to content

πŸ’‘ Web notes app inspired by Google Keep πŸ“

License

Notifications You must be signed in to change notification settings

lucasbarzan/google-keep-clone

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

46 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ’‘ Web notes app inspired by Google Keep πŸ“

GitHub language count Repository size GitHub last commit License Stargazers

πŸš€ Finished! πŸš€

Table of Contents

🦸 Author

Lucas Barzan
Lucas Barzan

Linkedin Badge Gmail Badge


πŸ’» About the project

πŸ’‘ Google Keep Clone is a web notes app inspired by Google Keep, which aims to reproduce the main aspects and features of the famous application using ReactJS and Node.js.


βš™οΈ Features

  • Responsive UI
  • Signup and Login with user's e-mail and password
  • User is able to search, create, update and delete notes
  • Infinite scrolling (in the list of notes on the frontend)
  • User is able to create tags (categories/labels) and associate them with notes
  • User is able to list notes by tag
  • User is able to customize the color of notes
  • User is able to reset their password once they forget it

🎨 Layout

The Google Keep Clone layout brings several elements of the original application, as you can see in the screenshots below:

Web

Screenshot 1 Screenshot 2

Screenshot 3 Screenshot 4

Screenshot 5 Screenshot 6


πŸš€ How to run it

This project is divided into two parts:

  1. Backend ("server" folder)
  2. Frontend ("web" folder)

πŸ’‘ The Frontend needs the Backend to be running in order to work properly.

Prerequisites

Before you begin, you will need to have the following tools installed on your machine: Git, Node.js.

Also, it’s good to have an editor to work with the code like VSCode.

🎲 Running the Backend (server)

# Clone this repository
$ git clone [email protected]:lucasbarzan/google-keep-clone.git

# Access the project folder on your terminal/cmd
$ cd google-keep-clone

# Go to server folder
$ cd server

# Install the dependencies
$ npm install OR yarn

# Create a file with the database configs following the example file
# (you can change the values if needed)
$ cp ormconfig.example.json ormconfig.json

# Create a file with the environment variables following the example file
$ cp .env.example .env

# The app uses a MySQL database. If you don't have one yet, I recommend creating a mysql container using Docker. 
# With Docker installed and running, execute the command below to create the "keep_clone" container
$ docker run --name keep_clone -e MYSQL_ROOT_PASSWORD=docker -p 3306:3306 -d mysql:8.0.22

# Create a database called "keep_clone" (or the name you gave in the settings).
# You can use a software like DBeaver to do this, for example.

# Run the database migrations
$ yarn typeorm migration:run

# The application uses a Redis database. If you don't have one yet, I recommend creating a redis container using Docker.
# With Docker installed and running, execute the command below to create the container "keep_clone_redis"
$ docker run --name keep_clone_redis -p 6379:6379 -d -t redis:alpine

# Run the application in development mode
$ npm run dev:server OR yarn dev:server

# The server will start on port 3333 - access http://localhost:3333 

Run in Insomnia

🧭 Running the web app (Frontend)

# Clone this repository (if you haven't already!)
$ git clone [email protected]:lucasbarzan/google-keep-clone.git

# Access the project folder in your terminal/cmd
$ cd google-keep-clone

# Go to the Frontend application folder
$ cd web

# Install the dependencies
$ npm install OU yarn

# Run the application in development mode
$ npm run start OU yarn start

# The application will start on port 3000 - access http://localhost:3000

πŸ›  Technologies

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

Website (React + TypeScript)

See package.json

Server (NodeJS + TypeScript)

See package.json

Utilities


πŸ’ͺ How to contribute

  1. Fork the project.
  2. Create a new branch with your changes: git checkout -b my-feature
  3. Save your changes and create a commit message describing what you did: git commit -m" feature: My new feature "
  4. Submit your changes: git push origin my-feature

πŸ“ License

This project is under MIT license.

Made with ❀️ by Lucas Barzan πŸ‘‹πŸ½

About

πŸ’‘ Web notes app inspired by Google Keep πŸ“

Topics

Resources

License

Stars

Watchers

Forks