Developers Guides - Core Package Breakdown¶
Understanding the core SeAT packages¶
This section aims to describe the functional differences between the various SeAT packages.
eveseat/api¶
Namespace: Seat\Api
Source Code: link
This repository contains all the SeAT Api Endpoints, as well as the routes and views for API key management.
eveseat/eveapi¶
Namespace: Seat\Eveapi
Source Code: link
This repository is the heart of the API update logic. It is responsible for doing the actual update work, pulling the EVE API documents from ESI, parsing them and storing the resultant data in the database. Most of the data models live in this repository too.
eveseat/notifications¶
Namespace: Seat\Notifications
Source Code: link
This repository contains a set of scheduled jobs that perform notifications type tasks. A notification can be something as simple as an alert about a corporation member that has been inactive for a period of time.
eveseat/web¶
Namespace: Seat\Web
Source Code: link
This repository contains the web interface for SeAT. It contains by far the most complex service provider and will undoubtedly become the prime example/reference when developing packages for SeAT. This package is also the only one that has a permissions / ACL concept. Refer the to the permissions document for more information.
eveseat/seat¶
Namespace: App
Source Code: link
This is the main SeAT repository. It does not really contain much logic. In fact, it should just be seen as the glue between all the core packages. This is the repository that is cloned when a new installation is done.
The most important part of this repository is the service providers that are bootstrapped with the application. The providers array has the default Laravel providers as well as the SeAT providers at the end. These providers tell the application where to find routes, views, configs etc. For more detailed information about providers, refer to the Laravel 5.5 documentation. When you write your package though, you should make use of package discovery as described in the Laravel 5.5 documenation. This will make the installation of your package super simple without the need to edit any files.
eveseat/services¶
Namespace: Seat\Services
Source Code: link
This repository contains 'services'. A service is defined as any form of helper and or repository that other packages can depend on. The eveseat/web package (amongst others) make heavy use of the repository classes in this package.