Skip to content

Commit b9b0533

Browse files
committed
Expand the design document
1 parent c8d3fa7 commit b9b0533

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

DESIGN.md

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,22 @@
11
# Design rationale for gotify
22

33
## Project structure
4+
The root package/directory only contains the domain types and logic. This will probably be limited to notification service interfaces and notification types. This package may not depend on any other package in this repo.
5+
6+
cmd contains the main package and takes care of meta sutch as configuration and binding all other packages together, This package may depend on any other package
7+
8+
All other packages represent a functionality or dependency and may only depend on the root package as well as external packages.
9+
10+
See [Project structure in go](https://medium.com/@benbjohnson/structuring-applications-in-go-3b04be4ff091) for further explanation.
411

512
## API Structure
13+
One api endpoint for every notification type.
14+
See readme for existing api endpoints
15+
16+
A post request to an endpoint with the matching jason notification type should send a notification and on success return the sent notification in json.
17+
18+
## Dependency injection
19+
20+
The web package has some weird dependency injection.
621

7-
## Dependency injection
22+
For now, take a look at it until you understand it. It looks like it does for a good reason.

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,8 @@ You must also allow mail api calls:
7777
You can either set this project up manually or with a simple docker compose setup. The manual setup is recommended if you'll be doing extensive development.
7878

7979
Please referer to the software design document before starting development: `DESIGN.md`
80+
81+
See issues for suggested features.
8082
### Manual
8183
Make sure you have golang installed and you `$GOPATH` setup.
8284
1. Follow the steps in [Setup](#setup) and enable debug mode.

0 commit comments

Comments
 (0)