Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/edgi9/library-app

A MERN application that can fetch Books from database and display them on a React Web application (WIP)
https://github.com/edgi9/library-app

docker docker-compose expressjs mern-project nodejs react-router reactjs redux tailwindcss testing-library typescript vite vitest

Last synced: about 1 month ago
JSON representation

A MERN application that can fetch Books from database and display them on a React Web application (WIP)

Awesome Lists containing this project

README

        

# Library App (WIP)

A MERN application built with React.js for the client side, Node.js and Express.js for the Server application and Mongo DB as Database.
The idea is to build a library application where we have alist of books the users can search for and get some information about the books.
There is an administrator side to the application that allows for adding/removing/updating books into the database.

## Demo
![image](https://github.com/user-attachments/assets/06fd0166-5ee2-4884-80fc-b0edd499b019)

## Language

- Typescript

## Tools

- Build tool (vite)
- Testing (vitest, testing-library)
- Framework (React.js)
- Server (Node.js, Express.js)
- Routing (React Router)
- Store (Redux.js)
- CSS (Tailwind)
- CI/CD (GitHub Actions)
- Containerization (Docker, Docker Compose, Dev container)
- Architecture (Hexagonal Architecture)
- Development Style (Test Driven Development)














## Project setup

### Docker Desktop

```
In order to avoid issues with versioning, it's best to run this application with Docker and run the "docker compose" file to set up the enviornment.
```

### Front-end

```
cd ./client
```

#### Compiles and hot-reloads for development

```
npm run dev
```

#### Compiles and minifies for production

```
npm run build
```

### Back-end

```
cd ./server
```

#### Start Server

```
npm run start
```

#### Compiles files

```
npm run build
```

### Run tests

```
cd ./client or cd ./server

npm run test
```

### Run test coverage

```
cd ./client or cd ./server
npm run test:coverage
```