diff --git a/Technical-Handout.md b/Technical-Handout.md index 53c6f00..9b984c6 100644 --- a/Technical-Handout.md +++ b/Technical-Handout.md @@ -1,38 +1,38 @@ -# Technical Handout API description - -## Introduction - -PGG is a software developed to manage, Tracks and help Teachers to Grade their Peer Groups. In this Technical Handout we will describe how the api is handling the requests from the WebUI. - -## Why do we want to implement API's? - -The API's are crucial for the septation of concern as well as for the modularity. -If you use API you are more likely to be able to switch between multiple different Frontends or the other way around multiple -backends for one Frontend. Their are multiple design patterns thad explain API's and use them like MVC or MVVM. -We did use them becaus the project is not large enough to uses one of the design patterns effective. - -## Who is the user? - -The user are Teachers from the schools thad have manny Peer Groups to grade. - -## What user pains are we solving and/or what gains are we creating for the user? - -the api solves the need of clear label groups linked to user's linked to projects all this is secured by a password. The goal of the project is to make the entire grading process accessible and secure through the API. - -## What concrete outcomes do we want to achieve with these APIs? - -the apis make a modular and save way to aces the data in the database for different frontends. - -## How do we plan to execute the API program to achieve that? - -we are executing the a staticky linked binary of the Program. - -## What is the architectural style and why have you chosen it (REST, SOAP, GraphQL, …)?" - -The program provides a REST API thad get used across the world and is Battle tested. Thad is also the way there is a huge amount of documentation. - -## Summary or Conclusion - -over all is the application is a staticky linked rust project with a REST API. The goal of the api is to provide a esy way for all teacher to get all informations over the groups with there feedback to the group work and the grades. - - +# Technical Handout: API Description + +## Introduction + +PGG is a software solution designed to help teachers manage, track, and grade peer groups. This technical handout describes how the API handles requests from the Web UI. + +## Why Do We Want to Implement APIs? + +APIs are essential for separation of concerns and system modularity. Using APIs allows for flexibility — enabling multiple frontends to interact with the same backend, or vice versa. There are several architectural design patterns, such as MVC or MVVM, that promote the use of APIs. + +Although we didn’t fully implement a specific design pattern due to the limited scope of the project, we followed modular principles that align with these architectures. + +## Who Are the Users? + +The primary users are teachers from schools who need to evaluate multiple peer groups efficiently. + +## What User Problems Are We Solving and/or What Benefits Are We Creating? + +The API addresses the need for clear labeling of groups, linking users to projects, and securing access via passwords. The goal is to make the grading process straightforward, secure, and accessible through the API. + +## What Concrete Outcomes Do We Want to Achieve with These APIs? + +We aim to provide a modular, secure, and scalable way to access database content from different frontends. The API abstracts the data layer and allows flexible integration with various user interfaces. + +## How Do We Plan to Execute the API Program to Achieve That? + +We are deploying the application as a statically linked Rust binary. This approach ensures performance, portability, and ease of deployment. + +## What Is the Architectural Style and Why Did We Choose It (REST, SOAP, GraphQL, etc.)? + +We chose to implement a RESTful API because it is a widely adopted, battle-tested standard. REST offers simplicity, scalability, and extensive documentation and tooling, making it an ideal choice for our use case. + +## Summary / Conclusion + +Overall, the application is a statically linked Rust project that exposes a REST API. The goal is to provide teachers with an easy, secure, and efficient way to access all relevant group data, including peer feedback and grading information. + + +