Digital Library

December 27, 2021

Books List Page

Where can I find the website?

You can visit the website by going to digital-library-main.vercel.app

Scroll down to view some screenshots of the website.


The Goal

Make a web app for libraries and its users that feels more like a social network and provide many features for managing books and users. Make the web app feel modern with a modern UI/UX, animations and full responsiveness.


How are images processed?

The images are processed and compressed on the client-side using the Compressor javascript library, and then sent to a S3 presigned upload URL with the upload size limited to 1MB. For more flexibility and security, you can easily add a GraphQL Mutation that processes the images server-side using the sharp npm package.


Project status

The project began in 11 July 2021 and finished Decemeber 27 2021


Tech stack

  • Web App
    • Next.js
    • Framer Motion (animations)
    • MobX (state management)
    • URQL (graphql client)
  • Backend
    • Apollo Server (graphql)
    • Json Web Token (authentication)
    • Postgres (database)
    • Typeorm
    • Type-GraphQL

Deployment

  • Web App

    • Vercel
  • Backend

    • API deployed to AWS Lambda
    • Postgres database deployed to AWS RDS
    • Images hosted on AWS S3 and cached by AWS Cloudfront

Where can I find the Source Code?

You can find the GitHub repository by scrolling up and clicking the GitHub icon or clicking here


Web App Screenshots

Home Page Login Page Register Page Books List Page Search Bar Books Search Bar User Book Page Administrator Profile Page Consumer Profile Page Manage Profile Add Book Page Edit Book Delete Book