Giter VIP home page Giter VIP logo

invent-case's Introduction

Invent Analytics Backend Developer Case

Overview

This document provides an overview of the library management application developed using Node.js and explains how to run it locally.

Libraries and Tools Used:

Express.js, TypeScript, TypeORM, Joi, PostgreSQL

Features

The app supports the following operations:

  • Listing Users
  • Retrieving User Information
  • Creating a New User
  • Listing Books
  • Retrieving Book Information
  • Creating a New Book
  • Borrowing a Book
  • Returning a Book

Library Choices

  • TypeORM: Simplifies and streamlines database interactions.
  • Joi: Ensures data integrity by validating API requests.
  • PostgreSQL: Provides a reliable and scalable database system.

Key Modules and Design Decisions

User, Book, and Borrow entity models were designed according to the case study requirements. Since book viewing is more frequent than borrowing or returning, I optimized the database by storing the average rating directly in the Book entity. This approach ensures faster access to book information.

I used the controller, service, and repository pattern to maintain a clean separation of concerns, promoting efficient data handling and easy maintenance.

Installation and Running

  1. Install Dependencies:

    npm install
  2. Setup Database:

    Run a Postgres db and configure your database connection in the .env file.

  3. Build and Run:

    Development:

    • Watch changes and automatically recompile:

      npm run dev

    Production:

    • Build and start the server:

      npm run build
      npm run start

Conclusion

Feel free to contribute or raise any issues for improvements. Thank you for checking out this project!

invent-case's People

Contributors

confxsd avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.