/api-rest-node-express-mongo

A RESTful API backend powered by Node.js, Express.js and MongoDB for my Redux ToDo List App Frontend.

Primary LanguageJavaScriptMIT LicenseMIT

ApiRESTNodeExpressMongo

Visit Frontend
Visit Backend

A RESTful API powered by Node.js, Express.js and MongoDB to be used as the backend for my project Redux Todo App.

First the Redux Todo App was built as a todo list app with React, Redux and only LocalStorage making it not a very effective web application across different devices, browsers or cache deletions.

Now this github project was added to bring a RESTful backend to the Todo List App and make it a fully fleshed web application. The goal of the web app is to be very minimalistic and simple. A user can sign up, log in with just his name and then add todos, alter their status and delete them. With the new backend the todos are persisted and still always accessible under the loginname accross different browser or devices.

Built With

Backend

  • Node.js - Allowing JavaScript to be run serverside outside of the browser
  • Express.js - A lightweight and simple to use framework for web application on Node.js
  • Cors - A Express.js middleware to handle CORS functions
  • Mongoose - A tool for asynchronous operations and modeling for MongoDB to handle validation and boilerplate code easily
  • MongoDB - A document-based/JSON approach for databases using NoSQL

Frontend

  • HTML - Foundation of the webpage
  • CSS - Styling and sizing of the webpage
  • JSX - Syntax extension to JavaScript for reactive DOM elements
  • JavaScript - Language used to make the webpage interactive
  • React.js - JavaScript library for user interfaces
  • Create React App Bootstrap to build out React apps fast
  • Redux - A predictable state container for React
  • Redux-Thunk - Redux Middleware for asynchronous state operations
  • Axios - Promised based HTTP client to make requests to the backend
  • MDBReact - Material Design Bootstrap Framework for React
  • Axios-Progress-Bar - A library to incluse a progress bar into the webpage that makes visualizes to the user after a HTTP request how long it will take for him to wait

Deployment

  • Github - A cloud platform for developing software applications and hosting Git remote repositories
  • Netlify - A platform for automating continues deployment of static websites and providing hosting as well as domain management
  • Heroku - A platform for building, running, hosting or scaling (backend) applications
  • mLab - A platform for mongoDB as a service. Provides free to use database solutions

Tools

  • Git - Free and open source distributed version control system to handle changes to code bases easily, rewind changes and work effectly as a team on a project
  • Visual Studio Code - Amazing open source lightweight IDE-like text editor for several programming languages with a huge variety of extensions
  • Nodemon - Library for Node.js to automatically restart the server on changes to the codebase
  • Dotenv - Library for Node.js to load environment variables from a .env file into process.env of Node.js
  • Rest Client - Extension for Visual Studio Code that makes HTTP Requests native and easy to use within Visual Studio Code through .rest files
  • Azure Cosmos DB - Extension for Visual Studio Code that makes uses the MongoDB API thus can be used to interact with a local MongoDB for viewing, updating and deleting documents or collections

Thanks to the open source community providing all these powerful tools!

How to use

The server is started through CLI with npm start

Available Routes:

Users

Todos

Individual HTTP Requests for CRUD functionalities are provided in route.rest.

Authors

License

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