Nojus0 / digital-library

Digital Library web application made using Next.js, GraphQL, PostgreSQL.

Home Page:https://digital-library-main.vercel.app

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Digital Library

Contribute with Gitpod Open in Codeflow

A web app meant for libraries, and its visitors. Visitors can view all the available books, and view what their friends are currently reading. By going to their profile. Demo deployed here for testing purposes.

Images

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 size limited to 1MB. For more flexibility, you can easily add a GraphQL Mutation that processes the images server-side using the sharp npm package.

Hosting

The book covers are uploaded to AWS S3 and cached using AWS Cloudfront so users all around the world experience low latency.

The GraphQL API is hosted on AWS Lambda so the web app can handle a high or low amount of traffic. While being cheap.

The application database is a PostgreSQL database hosted on AWS RDS.

The Next.JS frontend is hosted using Vercel.

Notes

To make the web app even more scalable, switch the database to AWS DynamoDB. Though in order to achieve this you would need to make major changes to the backend.

The user authentication is achieved by using a single JWT token, if you need more control add an additional refresh token or instead of using jwt tokens use session tokens stored in Redis.

Designed in Figma

https://www.figma.com/file/wDSMG2wQ2OrdMRpvtCkeyw/Digital-Library?node-id=323%3A90

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

About

Digital Library web application made using Next.js, GraphQL, PostgreSQL.

https://digital-library-main.vercel.app


Languages

Language:TypeScript 98.2%Language:JavaScript 1.3%Language:SCSS 0.5%