HelloBooks is an application that helps manage a library and its processes like stocking, tracking and lending of books.This application enables users to be able to find and borrow books. Users are managed by an admin who manages users as well as add, edit, delete books.
This is a javascript application built with Express framework on the nodejs platform. Authentication of users is done via JSON Web Tokens.
UI & Templates
Server Side
Client Side
Install Node JS.
Install Postgres .
Clone the repository here
[cd] into the root of the project directory.
Run npm install
on the terminal to install Dependecies
Install sequelize-cli, Create Postgresql database, Navigate to server directory and run migrations:
npm install -g seqeulize-cli
cd server
sequelize db:migrate
Create a .env
file in the root directory of the application. Use a different database for your testing and development. Example of the content of a .env file is shown in the .env.sample
Start the application: Different Build Environment
Production
npm run start-prod
Development
npm run start:dev
npm run build:dev
npm start:migrate
npm run start
or npm start
npm run start:webdev
The limitations with this current version of Hello Books includes:
Sever side tests - Run npm test
on the terminal while within the project root directory.
Client side tests - Run npm client:test
on the terminal while within the project root directory.
Server side testing is achieved through use of chai-http
, mocha
and chai
packages. chai-http
is used to make requests to the api and mocha
is the testing framework and chai
is the exception library. They will both be installed when you run npm install
and the tests will run when you run npm test
.
Client side testing is achieved through the use of jest
package. jest
is used to test javascript code in
React applications.
HelloBooks consists of the following features:
Three models are defined: Users
, Books
and UserBooks
. Book
must have a unique title and title on their creation. A User
can borrow a book Book
. The routes are defined under models/index
.
You can view the API Documentation here
Api endpoints were created using express
router. The routes are defined under server/routes
.
For more details contact benny.ogidan@andela.com
For any suggestions or contributions please do not hesistate to contact me
Contributions to this project are welcomed by all, If you need to contribute to this project, follow the steps below
This project is authored by Benny Ogidan (benny.ogidan@andela.com) and is licensed for your use, modification and distribution under the MIT license. MIT © benny-ogidan
See the Hello Books wiki