Skip to content

ThinkPad is a full-stack MERN (MongoDB, Express, React, Node.js) note-taking app that allows users to Create, Read, Update, and Delete notes with titles and descriptions.

Notifications You must be signed in to change notification settings

Lucas7680/Thinkpad

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ThinkPad 📝

ThinkPad Logo

Welcome to the ThinkPad repository! This is a full-stack note-taking application built using the MERN stack: MongoDB, Express, React, and Node.js. Users can easily create, read, update, and delete notes with titles and descriptions.

Table of Contents

Features

  • Create Notes: Users can add new notes with a title and description.
  • Read Notes: View all notes in a user-friendly interface.
  • Update Notes: Edit existing notes to keep information current.
  • Delete Notes: Remove notes that are no longer needed.
  • User Authentication: Secure access with user login and registration.
  • Responsive Design: Works on various devices, including desktops and mobiles.

Technologies Used

  • MongoDB: A NoSQL database for storing notes.
  • Express.js: A web application framework for Node.js.
  • React.js: A JavaScript library for building user interfaces.
  • Node.js: A JavaScript runtime for server-side programming.
  • Postman: For testing API endpoints.
  • Redis: For caching and optimizing performance.
  • Rate Limiting: To control the number of requests a user can make.
  • Upstash: A serverless database solution.

Getting Started

To get started with the ThinkPad application, follow these steps:

Prerequisites

Make sure you have the following installed:

  • Node.js
  • npm (Node Package Manager)
  • MongoDB
  • Redis (optional for caching)

Clone the Repository

Clone the repository to your local machine using the following command:

git clone https://github.com/Lucas7680/Thinkpad.git

Install Dependencies

Navigate to the project directory and install the necessary dependencies:

cd Thinkpad
npm install

Set Up Environment Variables

Create a .env file in the root directory and add the following variables:

MONGODB_URI=your_mongodb_connection_string
REDIS_URL=your_redis_connection_string (optional)
JWT_SECRET=your_jwt_secret

Run the Application

Start the server with the following command:

npm start

Open your browser and go to http://localhost:5000 to view the application.

API Documentation

The ThinkPad API allows you to interact with the application programmatically. Here are the main endpoints:

Notes Endpoints

  • GET /api/notes: Retrieve all notes.
  • POST /api/notes: Create a new note.
  • PUT /api/notes/:id: Update a note by ID.
  • DELETE /api/notes/:id: Delete a note by ID.

User Authentication Endpoints

  • POST /api/users/register: Register a new user.
  • POST /api/users/login: Log in an existing user.

Usage

Once the application is running, you can:

  1. Register a new account or log in.
  2. Create notes by filling in the title and description.
  3. View your notes on the main page.
  4. Edit or delete notes as needed.

For testing the API, you can use Postman to send requests to the endpoints mentioned above.

Contributing

Contributions are welcome! If you would like to contribute to the ThinkPad project, please follow these steps:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature/YourFeature).
  3. Make your changes.
  4. Commit your changes (git commit -m 'Add some feature').
  5. Push to the branch (git push origin feature/YourFeature).
  6. Open a pull request.

Please ensure your code follows the project's coding standards and includes tests where applicable.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Links

To download the latest release of ThinkPad, visit Releases.

For further information about the project and its updates, check the Releases section.

Feel free to explore the code and contribute to making ThinkPad even better!

About

ThinkPad is a full-stack MERN (MongoDB, Express, React, Node.js) note-taking app that allows users to Create, Read, Update, and Delete notes with titles and descriptions.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •