Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bohdanmoroziuk/booky
This is a minimal example implementation of Clean Architecture in Vue/Quasar
https://github.com/bohdanmoroziuk/booky
clean-architecture functional-programming jest oop pinia quasar2 typescript unit-testing vue-router vue3
Last synced: 21 days ago
JSON representation
This is a minimal example implementation of Clean Architecture in Vue/Quasar
- Host: GitHub
- URL: https://github.com/bohdanmoroziuk/booky
- Owner: bohdanmoroziuk
- License: mit
- Created: 2023-07-03T06:42:00.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-07-30T09:32:13.000Z (over 1 year ago)
- Last Synced: 2023-12-05T18:49:13.787Z (about 1 year ago)
- Topics: clean-architecture, functional-programming, jest, oop, pinia, quasar2, typescript, unit-testing, vue-router, vue3
- Language: TypeScript
- Homepage:
- Size: 754 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Booky (booky)
This is a minimal example implementation of Clean Architecture in Vue/Quasar
## To-do list
- [ ] Advanced error handling (Either)
- [ ] Test-driven development
- [ ] Dependency injection
- [ ] Data mapping## Project architecture
The project architecture consists of 4 levels: Presentation, Application,
Domain and Data (Infrastructure).![Project architecture](./diagram.png)
The characteristics of the layers are as follows:
- **Presentation**: This layer is basically made of UI components. The Presentation
Layer is directly coupled to the Application Layer.
- **Application**: This layer contains application logic. It knows of the Domain
Layer and the Infrastructure Layer.
- **Domain**: This layer is for domain/business logic. Only business logic lives in
the Domain layer, so there is just pure JavaScript/TypeScript code with no
frameworks/libraries whatsoever here.
- **Data**: This layer is responsible for communications with the outside
world (sending requests/receiving responses).## Module structure
The app consists of 1 module - bookmarks.
```txt
bookmarks/
├── data/
│ └── repositories
├── domain/
│ ├── entities
│ └── repositories
├── application/
│ └── services
├── presentation/
│ ├── components
│ ├── containers
│ ├── controllers
│ ├── pages
│ ├── stores
│ └── routes.ts
└── index.ts
```## Available scripts
### Install the dependencies
```bash
npm install
```### Start the app in development mode (hot-code reloading, error reporting, etc.)
```bash
npm run dev
```### Lint the files
```bash
npm run lint
```### Build the app for production
```bash
npm run build
```### Customize the configuration
See [Configuring quasar.config.js](https://v2.quasar.dev/quasar-cli-webpack/quasar-config-js).