- Introduction
- Technologies
- Setup
- How To Contribute
- Project Status
- Challenges Faced
- Future Implementation
- Licence
- Contact
"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.
The application runs on:
- React 18.2
- Bootstrap 5.3.1
- Mongoose 7.5.0
- Express 4.18.2
- Typescript 5.106
To run this project:
- Clone the repository
- Install dependencies and dev dependencies found in package.json
$ npm run build
$ npm start
Thank you for your interest in contributing to this open-source project!
- A GitHub account
- Git installed on your local development environment
- Node Package Manager (npm) installed on your local development environment
-
Fork the repository
-
Clone the forked repository
-
Install dependencies: To install the necessary dependencies for the project, navigate to the project directory and run the following command:
npm install
-
Create your changes
-
Create a new branch for your changes
-
Add your changed files to the stage by running the following command:
git add .
-
Commit your changes
-
Push to the branch
-
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.
-
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.
The project is complete.
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.
- 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
Soma is open-source and released under the [MIT License(https://github.com/swarupe7/MedPlant/blob/main/LICENSE)].