daniel-moderiano / odinbook-backend

Backend REST API for odinbook website

Home Page:https://odinbook-dzwi.onrender.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

⚠️ NOTE: Odinbook is now hosted on render to avoid ongoing costs associated with the prior AWS hosting setup.

Odinbook backend

This is the backend repository for odinbook - a social media website created as part of The Odin Project NodeJS course. This repository contains all the server-side code for odinbook, with information on the features and technologies used. For a general overview of odinbook, or detailed information on the frontend, please visit the following links:

Visit the frontend repository »

Visit the parent repository »

About the project

NOTE: The following AWS architecture has been decommissioned in favour of a free hosting alternative.

The odinbook backend is an express/nodeJS server that integrates with MongoDB to provide all the basic underlying features you would find in a social media application. This server is running with NGINX from a single EC2 instance on AWS, and uses Route 53 for DNS management. It uses a simple single-subnet VPC shown below. The server also serves the odinbook frontend from this location.

case-1_updated

Features

  • Session-based authentication: users can authenticate with odinbook using a session-based authentication system. This authentication system also supports Facebook login.
  • Image upload, storage, and analysis: images can be added to user's profiles or posts, and updated as needed. The odinbook backend stores images using Cloudinary's API. Microsoft Azure's Computer Vision API is also integrated to provide human-readable descriptions for user uploaded images (used as alt-text on frontend).
  • Comprehensive test suite: Jest and supertest have been used to add tests for as many controllers and helper functions as possible, with good overall test coverage.
  • REST API: the odinbook backend API is structured as using REST API principles as much as practicable.

Technologies used

At it's core, the odinbook backend is a NodeJS/Express application with MongoDB for data storage. Other major third party APIs are also listed here.

Acknowledgments

The following resources were a great help throughout the development of the odinbook backend.

About

Backend REST API for odinbook website

https://odinbook-dzwi.onrender.com/


Languages

Language:JavaScript 100.0%