28 lines
1.7 KiB
Plaintext
28 lines
1.7 KiB
Plaintext
---
|
|
description:
|
|
globs:
|
|
alwaysApply: true
|
|
---
|
|
# EV Wiki
|
|
The EV Wiki project is a website for searching, finding and comparison of ev vehicles.
|
|
It works like a search engine and aggregates the data from the database to show the user the requested information in a tile based view.
|
|
|
|
## Structue
|
|
The project is structured in domain driven design manner. Inside the src-Folder, you find:
|
|
- Application (Controllers, Commands and other symfony related application stuff)
|
|
- Domain: The core business logic of the project. This is 100% framework agnostic code
|
|
- Infrastructure: Implementations of Interfaces provided by the Domain layer.
|
|
|
|
The dependency is going from Application -> Domain -> Infrastrcture, but not in the opposite direction.
|
|
The Domain does not know about the existence of the application folder, and also the infrastructure doesn't know anything about the Domain and Application folder.
|
|
|
|
## Concepts
|
|
### Tile based results
|
|
One core concept of the search results in the ev wiki project is the tile based search result.
|
|
The Tile Classes e.g. are holding view data for specific tile types. These tiles are displayed by custom twig template, one template for one tile type.
|
|
The Tiles were aggregated and built by the Engine class that is responsible for building the tile view.
|
|
|
|
### Project dependencies
|
|
We will barely use external dependencies. Some depencies are explicitly avoided:
|
|
- No ORM: The project follows the philosophy, that orms destroy the needed abstraction between model (Domain) and database layer (Infrastrcture).
|
|
Since SQL is already a human readable language, there is no need to introduce heavy coupling between the model and the database layer. |