# Great Office This codebase and all of its source code is licensed under the GNU General Public License v3.0, see [COPYING](COPYING) for more information. ## server Contains an ASP.NET Core Web API project using the [ApiEndpoints](https://github.com/ardalis/ApiEndpoints) paradigm. It handles all data operation and administration for the platform. To run it you need .NET 6 and a PostgreSQL instance. ### Environment The server is configured through environments variables, in development [user-secret](https://docs.microsoft.com/en-us/aspnet/core/security/app-secrets) is a nifty tool. All environment variables the server needs to function properly is specified in [src/server/Data/Static/AppEnvironmentVariables.cs](./server/src/Data/Static/AppEnvironmentVariables.cs),w at a bare minimum these variables needs to be set: ``` DB_HOST= DB_USER= DB_PASSWORD= DB_NAME= ``` ### Building/Developing To run the server in development mode use `dotnet run` (`dotnet watch` for hot-reloading). To build the server locally use `dotnet build` or `dotnet build -c Release` for production builds. ## tests Contains integration tests for the web-app, written in .NET and xunit with Playwright for browser mocking. It automatically starts the server and expects the server to host the web-app at /index.html. Use `dotnet run` to run the tests. ## apps/web-app A svelte project built with vite. Run the dev task in package.json to open a dev server at localhost:3xxx (usually :3000). Append `--host` as a parameter to this task if you need to expose the app on your local network. Contains the public sites (in `apps/web-app/_public`) which include login, signup and password resetting etc. and the meat of the application as a nested application (meaning it is not loaded unless you are logged in) in `apps/web-app/app`. ## apps/web-shared A source lib containing models, shared styles and shared components for all of great office's js clients.