All Projects → benfluleck → HelloBooks

benfluleck / HelloBooks

Licence: MIT License
HelloBooks is a full stack javascript app that implements a simple digital library for keeping, borrowing managing all kinds of literature.

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects
CSS
56736 projects

Projects that are alternatives of or similar to HelloBooks

markdown-lab
Docker based Markdown Editing Environment for slides, resume, books and articles; New Linux ELF Video Course from this project author: https://www.cctalk.com/m/group/88089283
Stars: ✭ 46 (+130%)
Mutual labels:  books
okdux
redux made ok 👌
Stars: ✭ 16 (-20%)
Mutual labels:  react-redux
metasfresh-webui-frontend-legacy
metasfresh Webui Frontend
Stars: ✭ 57 (+185%)
Mutual labels:  react-redux
react-redux-exercise
Exercise to understand better react-redux, how it works and how to use it.
Stars: ✭ 48 (+140%)
Mutual labels:  react-redux
react-zhufengapp
这是珠峰培训react课程前端页面
Stars: ✭ 11 (-45%)
Mutual labels:  react-redux
effective-typescript
Effective TypeScript: 62 Specific Ways to Improve Your TypeScript
Stars: ✭ 781 (+3805%)
Mutual labels:  books
books
List of all Ruby books
Stars: ✭ 49 (+145%)
Mutual labels:  books
trivin
⚡️Setup your entire project quickly and easily with 1-line command ⚡️
Stars: ✭ 58 (+190%)
Mutual labels:  react-redux
kodlama.io-javareactcamp
Java - React Camp Works | Kodlama.io
Stars: ✭ 33 (+65%)
Mutual labels:  react-redux
serverless-grocery-app
Grocery Purchase app with serverless AWS Lambda + DynamoDB + React
Stars: ✭ 28 (+40%)
Mutual labels:  react-redux
react-native-shopping-app
A shopping app using React Navigation, Redux, Redux-Thunk and Firebase.
Stars: ✭ 67 (+235%)
Mutual labels:  react-redux
network-pipeline
Network traffic data pipeline for real-time predictions and building datasets for deep neural networks
Stars: ✭ 36 (+80%)
Mutual labels:  react-redux
react-native-boilerplate
React Native Boilerplate - React Native Starter Kits : react-navigation and its dependencies, redux, redux persist and redux thunk, redux toolkit, react native vector icons, react-native async storage
Stars: ✭ 68 (+240%)
Mutual labels:  react-redux
iou-slack-bot
💸 IOU Slack Bot - Keep track of your debts with your peers.
Stars: ✭ 13 (-35%)
Mutual labels:  borrowing
expert readed books
2021年最新总结,推荐工程师合适读本,计算机科学,软件技术,创业,思想类,数学类,人物传记书籍
Stars: ✭ 1,664 (+8220%)
Mutual labels:  books
SHOPMATE
front-end e-commerce system
Stars: ✭ 12 (-40%)
Mutual labels:  react-redux
learning R
List of resources for learning R
Stars: ✭ 32 (+60%)
Mutual labels:  books
react-redux-spotify
React + Redux + Spotify web api boilerplate project
Stars: ✭ 14 (-30%)
Mutual labels:  react-redux
Openbooks
An online reopository to share books. Created in the loving memory of the internet's own boy Aaron swartz, on his birthday.
Stars: ✭ 45 (+125%)
Mutual labels:  books
MetFlix
A Movie app demo. Like NetFlix ❤️
Stars: ✭ 50 (+150%)
Mutual labels:  react-redux

License: MIT Build Status Coverage Status Maintainability Greenkeeper badge

HelloBooks

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.



Hellobooks-screenshot


Table of Contents

Getting Started

This is a javascript application built with Express framework on the nodejs platform. Authentication of users is done via JSON Web Tokens.

Technology Stack

UI & Templates

  1. HTML & CSS
  2. Materialize CSS Framework
  3. Javascript
  4. JQuery

Server Side

  1. NodeJS
  2. Express
  3. Sequelize

Client Side

  1. React(Redux)

Dependencies

  • Postgres
  • Node

Installation

  1. Install Node JS.
  2. Install Postgres .
  3. Clone the repository here
  4. [cd] into the root of the project directory.
  5. Run npm install on the terminal to install Dependecies
  6. Install sequelize-cli, Create Postgresql database, Navigate to server directory and run migrations:
npm install -g seqeulize-cli
cd server
sequelize db:migrate
  1. 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

  2. Start the application: Different Build Environment

Production

npm run start-prod

Development

npm run start:dev
npm run build:dev

Usage

  • Run database migration with npm start:migrate
  • Start app development with npm run start or npm start
  • To start the client npm run start:webdev
  • Install Postman and use to test all endpoints

Limitations

The limitations with this current version of Hello Books includes:

  • Authenticated Users can not read books

Testing

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.

Features

HelloBooks consists of the following features:

Authentication

  • It uses JSON Web Token (JWT) for authentication.
  • Token is generated on user login
  • Token is perpetually verified to check the state of the user if logged in or not.
  • Admin User will br pre-seeded into the application with administrative priviledges

Unauthenticated Users

  • Unauthenticated users can look at the recent books in the library
  • Unauthenticated users can look at the users levels in the library

Authenticated Users

  • Authenticated Users can register
  • Authenticated Users can log in
  • Authenticated Users can view all books in the library
  • Authenticated Users can borrow books
  • Authenticated Users can return books
  • Authenticated Users can view borrowing history
  • Authenticated Users can search through a list of books

Admin Users

  • Admins can edit books
  • Admins can add new books
  • Admins can delete books
  • Admins can change user levels for authenticated users
  • Admins can add a new category
  • Admins can edit a category
  • Admins can delete a category
  • Admin can see a list of users

Models

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.

API Documentation

You can view the API Documentation here

Express Routes

Api endpoints were created using express router. The routes are defined under server/routes.

Questions

For more details contact [email protected]

Support or Contribution

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

  • Fork the repository
  • Follow Installation and Setup as explained earlier
  • Create a branch off development for the feature you wish to add
  • Make neccessary changes, commit and raise a pull request against develop, conventions can be found on the wiki page Note when making contributions, please endevour to follow the Airbnb javascript style guide. check out the wiki page

License

This project is authored by Benny Ogidan ([email protected]) and is licensed for your use, modification and distribution under the MIT license. MIT © benny-ogidan

FAQ

See the Hello Books wiki

Current state

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].