Skip to content

Latest commit

 

History

History
43 lines (32 loc) · 3.13 KB

README.md

File metadata and controls

43 lines (32 loc) · 3.13 KB

About

RESTful API built with Node, Express, and MongoDB.

The API can be used as a foundation for a note-taking or image-tagging application.

Note that this API is not complete and is intended to serve as a proof of concept to showcase my API design skills.

Tech Stack

  • Node.js - an open-source JavaScript runtime environment for building server-side applications
  • Express - a web application framework for Node.js that makes it easier to build and manage APIs
  • MongoDB - open-source NoSQL database that is well-suited for storing data in JSON-like documents
  • mongoose - an object data modeling (ODM) library for MongoDB
  • typescript - a typed version of JavaScript that improves code quality and maintenance.

  • jest - a JavaScript testing framework and test runner
  • supertest - a library for testing HTTP servers in Node.js, providing a high-level abstraction for testing HTTP requests and responses

  • bcrypt - a library for hashing and encrypting passwords
  • jsonwebtoken - a library for generating and verifying JSON web tokens (JWT)
  • cloudinary - Node SDK for a cloud-based image and video management platform
  • date-fns - a lightweight JavaScript library for working with dates and times
  • dotenv - a library for loading environment variables from a .env file
  • joi - a library for validating JavaScript objects
  • joi-password - a joi plugin for validating passwords
  • morgan - a middleware for logging HTTP requests
  • multer - a middleware for handling HTTP file uploads
  • nodemailer - a library for sending email from Node.js
  • nodemon - a utility that automatically restarts a Node.js server when changes are detected in source files
  • winston - a library for logging and managing messages in a Node.js application

Features

  • Token-based user authentication allows users to securely access the API using unique tokens, and ensures that only authorized users can access and manipulate data in the API.
  • CRUD (create, read, update, delete) allow users to create, retrieve, update, and delete data in the API.
  • Error handling allows the API to gracefully handle and respond to errors, providing helpful messages and guidance to users.
  • Integration and unit tests ensure that the API is functioning correctly and provides confidence in its reliability and stability.
  • HATEOAS provides links to related resources within the responses, allowing clients to easily navigate and discover the API's capabilities without requiring external documentation.