Skip to content
/ rest Public

RESTful API that can be used as a foundation for a note-taking or image-tagging application. Features token-based authentication.

Notifications You must be signed in to change notification settings

aga87/rest

Repository files navigation

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.

Releases

No releases published

Packages

No packages published

Languages