Introduction ============ **The Sheriff** is an exciting game application about an **Outlaw** that goes out to eat with his **Gang of friends** in some restaurant. Along the game, the player will be able to **organize raids** in any restaurant for a given **Gang**, **create new gangs** and **many more features**! This game is created by the the company *StartupZ*, led by Fran Mangas, who brings the business project, developed by *The Sheriff Team*, a group of Software Engineers from the *Evil Corp* consulting company, composed by Tatiana Bagnara, Diego Zavaleta, Ricardo Muhamed, Sergi Jimenez and Quim Nadal. The goal of doing this project is to **learn**, **apply** and later **evaluate** what the *Evil Corp* developers learnt in *Diseño Software 1* subject: 1. **Clean code technics** 2. **Creational, structural and behavioral patterns** 3. **SOLID principles.** *The Sheriff* is an activity contained in *Diseño Software 1* subject, done in the first semester of the *Master en Desarrollo y Arquitectura de Software* master's degree, at *La Salle, Universitat Ramón Llull* university. Documentation Layout -------------------- The next sections on this documentation try to focus and develop the following points: - **Design - Hexagonal architecture**: How and Why the project is layed out using the hexagonal architecture. - *The Sheriff Application package* - *The Sheriff Domain package* - *The Sheriff Infrastructure package* - **Technologies**: Details of the technologies used to make the infrastructure to work, the relations they have in the design with other classes and an analysis of the impact of modifying every technology used in the project. - **API Documentation**: Auto-generated documentation from the code comments, details all classes, methods, attributes, etc. - **Functionality - The Sheriff usage**: How to run the application, how to run tests and linting checks, the tools needed for it. - **Conclusions** **Have fun!**