--- 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.