An open API service indexing awesome lists of open source software.

https://github.com/shubham6617/keeper-app

Full-stack Keeper App lets users manage notes with React, Node.js, and MySQL. Store, create, and delete notes easily. 🌟📁
https://github.com/shubham6617/keeper-app

android content-curation css google hacktoberfest hacktoberfest2021 javascript keeper keeper-app notes-app php quasar quasar-framework scholarship spiral tauri udacity vue3-typescript

Last synced: 4 months ago
JSON representation

Full-stack Keeper App lets users manage notes with React, Node.js, and MySQL. Store, create, and delete notes easily. 🌟📁

Awesome Lists containing this project

README

          

# Keeper App: A Lightweight Note-Taking Tool in React

![Keeper App](https://img.shields.io/badge/Keeper_App-React-brightgreen)

## Table of Contents

- [Overview](#overview)
- [Features](#features)
- [Technologies Used](#technologies-used)
- [Installation](#installation)
- [Usage](#usage)
- [API Endpoints](#api-endpoints)
- [Contributing](#contributing)
- [License](#license)
- [Release Information](#release-information)

## Overview

📝 **Keeper App** is a lightweight note-taking application built with React. Inspired by Google Keep, it allows users to quickly add, view, and delete notes. The app features a clean and responsive user interface, making it easy to manage your thoughts and ideas.

For the latest updates and versions, visit the [Releases section](https://github.com/Shubham6617/Keeper-App/releases).

## Features

- **Create Notes**: Quickly add notes with a simple form.
- **View Notes**: Easily view all your notes in a clean layout.
- **Delete Notes**: Remove notes you no longer need with a single click.
- **Responsive Design**: The app looks great on all devices.
- **React Hooks**: Utilizes React Hooks for state management and side effects.
- **Simple CSS Styling**: Clean and minimal design for better user experience.

## Technologies Used

- **React**: The core library for building user interfaces.
- **React Hooks**: For managing state and lifecycle events.
- **Node.js**: Server-side JavaScript runtime.
- **Express**: Web framework for Node.js.
- **MySQL**: Database for storing notes.
- **Axios**: For making HTTP requests.
- **Body-parser**: Middleware for parsing incoming request bodies.
- **CORS**: Middleware for enabling Cross-Origin Resource Sharing.
- **Nodemon**: Tool for automatically restarting the server during development.
- **JavaScript**: The programming language used throughout the application.

## Installation

To set up the Keeper App on your local machine, follow these steps:

1. **Clone the Repository**:
```bash
git clone https://github.com/Shubham6617/Keeper-App.git
cd Keeper-App
```

2. **Install Dependencies**:
Run the following command to install all required packages:
```bash
npm install
```

3. **Set Up the Database**:
Make sure you have MySQL installed and create a database for the app. You can use the following SQL commands to set up your database:
```sql
CREATE DATABASE keeper_app;
USE keeper_app;

CREATE TABLE notes (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
content TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
```

4. **Start the Server**:
Use Nodemon to start the server:
```bash
npm run server
```

5. **Start the Client**:
Open another terminal and navigate to the client directory:
```bash
cd client
npm start
```

Now you can access the app in your browser at `http://localhost:3000`.

## Usage

Once the app is running, you can start adding notes. The main interface consists of a text input for the title and a larger text area for the content. Click the "Add Note" button to save your note. You can view all your notes displayed below the input area.

To delete a note, simply click the trash icon next to the note you want to remove. The app will confirm your action before deleting the note.

## API Endpoints

The Keeper App has several API endpoints for managing notes. Below are the key endpoints:

- **GET /api/notes**: Retrieve all notes.
- **POST /api/notes**: Create a new note. Requires a JSON body with `title` and `content`.
- **DELETE /api/notes/:id**: Delete a note by ID.

### Example API Calls

Here are examples of how to interact with the API using Axios:

1. **Fetch Notes**:
```javascript
axios.get('/api/notes')
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error('Error fetching notes:', error);
});
```

2. **Create a Note**:
```javascript
axios.post('/api/notes', {
title: 'New Note',
content: 'This is the content of the new note.'
})
.then(response => {
console.log('Note created:', response.data);
})
.catch(error => {
console.error('Error creating note:', error);
});
```

3. **Delete a Note**:
```javascript
axios.delete('/api/notes/1')
.then(response => {
console.log('Note deleted:', response.data);
})
.catch(error => {
console.error('Error deleting note:', error);
});
```

## Contributing

Contributions are welcome! If you want to help improve the Keeper App, follow these steps:

1. Fork the repository.
2. Create a new branch:
```bash
git checkout -b feature/your-feature-name
```
3. Make your changes and commit them:
```bash
git commit -m "Add your message here"
```
4. Push to the branch:
```bash
git push origin feature/your-feature-name
```
5. Open a pull request.

Please ensure your code follows the project's coding style and passes all tests.

## License

This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.

## Release Information

For the latest releases, including new features and bug fixes, visit the [Releases section](https://github.com/Shubham6617/Keeper-App/releases). Download and execute the latest version to get the most out of Keeper App.