Giter Site home page Giter Site logo

socourt-books's Introduction

Description

  • NodeJS / Express / React

  • Server directory: the root of the project

  • Client ( React ) directory: /client

  • React is generated using:

create-react-app

Installation

  1. Global Installation of nodemon:
npm i nodemon -g
  1. Run npm install in root directory.
  2. Run cd client & npm install - installing the react application dependencies.
  3. Run cd ... - to go to the root folder again.
  4. Run npm run dev: This will start the server (running server.js with nodemon) & run the react application from the client directory.

More info

There is a proxy configuration in the client part, to map the http://localhost:5000 (Where the server API is running) to http://localhost:3000 (Where the client front end is running): "proxy": "http://localhost:5000/",.

The server is running on nodeJS / Express

Task

API Task

  1. Create a database connection ( preferable MongoDB )
  1. Create Database models for: Genres & Books
  • Book: should have a name, author, genre & dates of creation and last update
  • Genre: should have a name & dates of creation and last update
  1. Create API Endpoints for:
  • Getting the information about a single book: /api/book/:id
  • Getting a list of all books: /api/books
  • Getting a list of books by genre: /api/genre/:id
  • Getting a list of genres: /api/genres
  • Search books by name: /api/books/search ( Should be a post method with a search param)
  • Search books by genre name: /api/genres/search ( Should be a post method with a search param)

  1. An additional task, not mandatory:
  • Create model for Users
  • Add a register/login/forgot password login in the application
  • Provide the library information only to authenticated users

React task

  1. Apply routing using react-router [https://reacttraining.com/react-router/web/guides/philosophy
  2. Create a sidemenu component with filter by genre & a search input.
  3. Create a single Book Component to display the list of books in search and filter screens.
  4. Create a Book Screen with displaying full details of the book on the screen ( When clicked on a book component )

  1. An additional task, not mandatory: - Use redux in the application - A strong plus if you apply redux. - Create a authentication login in the app:
    • Login screen / Private routes / Reset Password / Sign Up screen

Note: All additional tasks are not mandatory, but will consider a big plus if they are provided and work as expected.

socourt-books's People

Contributors

georgiyazovaliiski avatar deyanmakedonski avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.