A Google Keep-inspired note-taking application built using the PERN stack:
- PostgreSQL: Database for storing notes
- Express: Server framework for handling API routes
- React: Front-end UI for creating/viewing/editing notes
- Node.js: Runtime environment for running JavaScript on the server side
This clone allows users to create, read, update, and delete notes, closely mirroring key features of Google Keep.
- Overview
- Features
- Tech Stack
- Installation & Setup
- Usage
- Project Structure
- Contributing
- License
- Contact
This Google Keep Clone is a full-stack web app that showcases how to build a note-taking application with the PERN stack. Users can:
- Add new notes (with titles and content)
- Edit existing notes
- Delete notes
- Create Notes: Title + content fields
- Edit Notes: Update existing note content
- Delete Notes: Remove unwanted notes
- Responsive UI: Works on both desktop and mobile
- Authentication: Bcrypt based and Google Single Sign-On (SSO)
- PostgreSQL
- Relational database for storing note data
- Express
- HTTP server framework running on Node.js
- React
- Front-end library for building the user interface
- Node.js
- JavaScript runtime for server-side logic
- Clone the Repository
git clone https://github.com/dvarshith/google-keep-clone.git cd google-keep-clone
- Create a PostgreSQL Database
- Install PostgreSQL.
- Create a database.
- Note your Postgres credentials (host, user, password, port).
- Backend Setup
- Go to the backend folder.
cd server npm install
- Create a
.env
file to store Postgres credentials and any other environment variables:DB_USER=your_username DB_PASSWORD=your_password DB_HOST=localhost DB_PORT=5432 DB_NAME=keep_clone_db SERVER_PORT=5000
- Initialize your database schema.
- Start the server:
By default, the server will run on http://localhost:5000.
npm run dev
- Go to the backend folder.
- Frontend Setup
- In another terminal, go to the React front-end folder:
cd client npm install
- Start the React app:
The app opens at http://localhost:5173 by default.
npm start
- In another terminal, go to the React front-end folder:
- Open the Frontend: Go to http://localhost:5173.
- Create a Note: Click “Add Note” and fill in title and content.
- Edit a Note: Select a note, modify text, and save.
- Delete a Note: Click the delete icon to remove it from the list.
- Database: Check your PostgreSQL
keep_clone_db
to see note records appear or change.
google-keep-clone/
├── server/ # Express + Node backend
│ ├── db.sql # Postgres connection/config
│ |── package.json # backend dependencies
| └── server.js # backend code
├── client/ # React frontend
│ ├── src/
│ │ ├── components/ # Note components, etc.
│ │ ├── pages/ # Routes for handling authentication.
│ │ └── index.js # index javascript file for frontend using React
│ ├── public/
│ ├── resources/
│ ├── index.html
│ |── package.json
│ └── vite.config.js
├── README.md
├── LICENSE
└── .gitignore
- Fork this repository
- Create a new branch (
git checkout -b feature/YourFeature
) - Commit changes (
git commit -m 'Add feature'
) - Push to branch (
git push origin feature/YourFeature
) - Open a Pull Request on GitHub
This project is released under the MIT License
. That means you’re free to use, modify, and distribute the code, but you do so at your own risk.
Author: Varshith Dupati
GitHub: @dvarshith
Email: dvarshith942@gmail.com
Issues: Please open an issue on this repo if you have questions or find bugs.
Note: This project is for educational/demonstration purposes. It is not affiliated with or endorsed by Google in any way.