Skip to content

This a full stack MERN app that has been developed to make it easier for bibliophiles to discover, search, find, save and download their favorite books in EPUB and audiobook form.

License

Notifications You must be signed in to change notification settings

athenacats/soma

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Soma: An Open-Source Project That Allows Users To Easily Discover and Download New Books

Most Used Language [React] [Node.js] [Express.js] [MongoDB] [TypeScript] [JSON] [Railway]

[Code Size] LinkedIn Email

Table of Contents

Introduction

"Soma" is a Swahili word that means "to read". Admittedly, living in a third-world country means that for one to access current fiction or non-fiction books, they have to either spend to buy said books (which isn't a reality afforded to most), rely on getting outdated second-hand copies from westernized countries (which may take years), or go through what's considered less than legal means to access the books.

Ethics and morality issues and standings aside, this app has been created to make it easier for users to access lists of the just-released books or search for whichever book they would like, and have direct links redirecting them to sites on which they can download the books in whichever format they want.

The website makes use of data from just-released books from Barnes and Noble, which is updated daily, limited to displaying 8 books at a time in order to keep the integrity of the website. Book searches and displays are made through API calls from Open Library.

Users can sign up, search for books, rate books, see their rated books, and easily download EPUB or audiobook versions of the book- if the links are available on the provided linked websites. Users are advised to use a VPN while downloading the books.

To see the website in action, click here. Please note it takes the website some time to load up as it is hosted on the free plan.

Technologies

The application runs on:

  • React 18.2
  • Bootstrap 5.3.1
  • Mongoose 7.5.0
  • Express 4.18.2
  • Typescript 5.106

Setup

To run this project:

  • Clone the repository
  • Install dependencies and dev dependencies found in package.json
$ npm run build
$ npm start

How To Contribute

Thank you for your interest in contributing to this open-source project!

Prerequisites

  • A GitHub account
  • Git installed on your local development environment
  • Node Package Manager (npm) installed on your local development environment

How To:

  1. Fork the repository

  2. Clone the forked repository

  3. Install dependencies: To install the necessary dependencies for the project, navigate to the project directory and run the following command: npm install

  4. Create your changes

  5. Create a new branch for your changes

  6. Add your changed files to the stage by running the following command: git add .

  7. Commit your changes

  8. Push to the branch

  9. Create a pull request: To submit your changes to the main repository, create a pull request by clicking on the "Compare & pull request" button on your forked repository page.

  10. Wait for review and merge: Wait for the project maintainers to review and merge your changes.

Once your changes are merged, your changes will be displayed on the project's website.

Project Status

The project is complete.

Challenges Faced

Accessing, collecting, and transmitting the data required for the various API calls was complicated but proved to be an interesting challenge to conquer. Goodreads API would have been perfect but is not public anymore.

Future Implementation

  • Include sign-in/up via Google and perhaps Goodreads
  • Link a user's lists and books from Goodreads, which could prove problematic as Goodreads' API is not public
  • Save all loaded books in MongoDB. Currently only saved data is a user's info and their saved books. Cannot aggregate ratings on the website itself
  • Add about page

Licence

Soma is open-source and released under the [MIT License(https://github.com/swarupe7/MedPlant/blob/main/LICENSE)].

Contact

Reach me on LinkedIn Email

About

This a full stack MERN app that has been developed to make it easier for bibliophiles to discover, search, find, save and download their favorite books in EPUB and audiobook form.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages