summaryrefslogtreecommitdiffstats
path: root/README.md
blob: e17cfb1f4d9179035a2a28763f5f66ffa89f8966 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# 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=<host>
DB_USER=<user>
DB_PASSWORD=<password>
DB_NAME=<schema>
```

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