image of search page for books app

Swiftbooks Bookstore

Dec 18, 2023

Summary

SwiftBooks is a comprehensive web application offering a virtual bookstore experience. Users can explore and purchase books with ease, thanks to features like a shopping cart and a streamlined checkout page. Personalization is key, as users can create and manage their own book lists, complete with reviews. Admins have control over the platform, with the ability to manage accounts and reviews. Sign-in options include both traditional username/password and Google account integration. The front-end, built with Next.js, React, and TypeScript, offers a seamless user experience with the Mantine UI library. On the backend, Node.js and Express power the application, with PostgreSQL handling data storage. The communication between front-end and back-end occurs via a REST API. The project is deployed using Docker, with separate containers for the front-end and back-end, ensuring scalability and efficiency. Testing ensures reliability through unit and integration tests.

Github Repo.

SwiftBooks is a cutting-edge web application that transforms your book shopping into a fully digital and personalized experience. With a suite of interactive features, this platform allows book enthusiasts to explore, review, and purchase their favorite reads with just a few clicks.

booklist image

Browse and create custom book lists to curate your reading experience.

Users are empowered to create personalized book lists that reflect their reading preferences. These lists can be shared publicly or remain private for personal use. To foster a community of readers, SwiftBooks enables users to leave reviews on book lists, enriching the discovery process.

search books page

A dynamic search feature to find books in an extensive digital library.

The shopping experience is seamless, featuring an intuitive shopping cart and a streamlined checkout page. Simplifying the purchase process, SwiftBooks ensures an efficient transaction from selection to payment.

shopping cart page

An easy-to-navigate shopping cart for a hassle-free purchasing experience.

checkout page

Swift and secure checkout to finalize your book purchases.

Management of the platform is robust, with administrative capabilities to disable user accounts and moderate reviews, maintaining a respectful and professional online environment.

login page

Flexible sign-in options including traditional login and Google account via Firebase.

The application respects modern development and deployment standards. The front-end is developed with Next.js, React, and TypeScript, leveraging the Mantine UI library for a beautiful and responsive design. The back-end, built on Node.js and Express, handles data management with a PostgreSQL database and communicates with the front-end through a REST API.

Assurance of functionality comes from comprehensive testing, including unit and integration tests that verify each feature's performance. SwiftBooks is deployed using Docker, with separate containers for the front-end and back-end. This approach ensures a scalable and efficient platform, ready to cater to a growing user base.

Deployment

The project was deployed on a DigitalOcean Droplet by first building the application containers and then pushing them to the DigitalOcean Container Registry (DOCR). Once the containers were stored in the registry, I used Docker Compose to orchestrate and run the containerized application on the Droplet, ensuring a smooth and scalable deployment process. This method allowed for easy management and update of the application directly from the development pipeline to the production environment on DigitalOcean.