Skip to content

Commit f5e996a

Browse files
committed
Update wiki
1 parent e939658 commit f5e996a

File tree

8 files changed

+63
-1
lines changed

8 files changed

+63
-1
lines changed

docs/CICD.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# CICDs
2+
3+
OPP exploits GitHub actions to automate the build and deployment of the OPP application. The following diagram illustrates the process:
4+
![CICD](assets/OPP_CICD.svg)
5+
6+
Where:
7+
- Squares represent Repositories
8+
- Diamonds represent Actions
9+
- Circles represent outputs
10+
11+
Workflows in a repository triggers others in another repository using Repository Dispatch.

docs/about.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# About
2+
3+
Open Park Project is an open-source initiative started at Politecnico di Torino as a project course by [tollsimy](https://github.com/orgs/OpenParkProject/people/tollsimy), [LivioDadone](https://github.com/orgs/OpenParkProject/people/LivioDadone) and [Roya-Lusia](https://github.com/orgs/OpenParkProject/people/Roya-Lusia).
4+
5+
The project aims to provide a modern and scalable open-source solution for the management of parking areas, with a focus on ease of use and flexibility. The project is designed to be modular and extensible, allowing users to customize and extend the functionality to meet their specific needs.
6+
7+
Give the diverse background of the team members, the project is split in different microservices, each one developed using the technology preferred by the developer.
8+
Feel free to navigate through the documentation to learn more about the project and its components.

docs/api.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# API Documentation
22

3-
APIs are specified in [OPP-common](https://github.com/OpenParkProject/OPP-common/openapi.yaml) repository in OpenAPI 3.1 format.
3+
APIs are specified in [OPP-common](https://raw.githubusercontent.com/OpenParkProject/OPP-common/refs/heads/main/openapi.yaml) repository in OpenAPI 3.1 format.
44
The OpenAPI spec is used to generate the API documentation as well as the server and client stubs with request validation and authentication as a single source of truth.
55

66
## OpenAPI spec

docs/assets/OPP_CICD.svg

Lines changed: 4 additions & 0 deletions
Loading

docs/client.md

Whitespace-only changes.

docs/license.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# License
2+
3+
Open Park Project is licensed under the [GPL-3.0 License](https://www.gnu.org/licenses/gpl-3.0.html).

docs/server.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Server
2+
3+
The OPP server consists of a set of microservices that work together to provide the OPP functionality.
4+
5+
The server is composed of the following components:
6+
- Web server
7+
- Application server
8+
- Authentication provider
9+
- Database
10+
- Payment Service
11+
12+
## Web Server
13+
The Web Server is an Nginx server that serves the web client static files and acts as a reverse proxy to the application server as well as the authentication provider.
14+
15+
## Application Server and Authentication Provider
16+
The Application Server is written in Go and is responsible for handling the business logic of the OPP. It communicates with the database and the payment service to perform operations such as creating orders, processing payments, and managing users.
17+
The Authentication Provider is responsible for managing user authentication and authorization. It uses JWT-based Bearer tokens to authenticate users and provide access to the OPP API.
18+
19+
Both the Application Server and the Authentication Provider follows the OpenAPI specification defined in the [API section](api.md). The Authentication Provider logic is described in the [Authentication section](auth.md).
20+
21+
## Database
22+
The database is a PostgreSQL database that stores all the data for the OPP. It is used to store user information, orders, payments, and other data required by the application server.
23+
24+
## Payment Service
25+
The Payment Service is a microservice that handles payment processing. It communicates with the application server to process payments and send the results back to the application server.
26+
27+
## Push Notification Provider
28+
During the project definition, a Push Notification for fines was defined. The idea was that when the controller issues a fine, the system sends a push notification to the user.
29+
However, since we did not want to rely on APN or FCM, and since this notification is normally rather infrequent, we decided to use a polling mechanism instead.
30+
A more suitable solution would be to use email or SMS notifications, but this would require a more complex setup and is not part of the current implementation.

mkdocs.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,10 @@ nav:
1616
- APIs:
1717
- API spec: api.md
1818
- Authentication: auth.md
19+
- Server: server.md
20+
- Client: client.md
21+
- CICDs: CICD.md
1922
- Initial Requirements: req.md
23+
- About:
24+
- About: about.md
25+
- License: license.md

0 commit comments

Comments
 (0)