---
# System prepended metadata

title: Projektantrag - opnsnap

---

# Projektantrag - opnsnap

## Team
- Tobias Pucher (k12106406)
- Alexander Brunner (k12102677)
- Arber Nika (k11938087)
- Matthias Heiden (k12104028)


## Beschreibung

Es soll eine mobile Anwendung zur zeitweiligen Versendung von Bildern incl. Text und gegebenenfalls Filtern o.ä. erstellt werden. Empfangene Bilder werden direkt nach dem Ansehen wieder gelöscht. 

Folgende Funktionen sind derzeit geplant: 
- Versenden von individuellen Bilder, die man mit Filtern, Stickern, Text und Zeichnungen versehen kann.
- Versenden von Videos
- Hinterlegen von Musik zu einem Bild/Video
- Teilen der Position mit anderen Personen (mittels GPS)
- Senden der Bilder/Videos and die Öffentlichkeit incl. Ranking der aktuell meist gelikeden Bilder/Videos
- Freunde können mit einem QR-Code hinzugefügt werden. 
- Nachrichten können an Freunde oder Gruppen versendet werden


Sketches: 
- Aufnehmen von Bildern und einstellen von Filtern u.ä.. Das Bild/Video kann dann entweder gespeichert und/oder versendet werden.
![](https://i.imgur.com/RmI1HJT.png)

- Nachrichten können an Freunde (Matthias und Alexander) oder Gruppen (JKU Linz) versendet werden. Dabei wird rechts auch noch eine Streak angezeigt, die anzeigt wie lange man mit dieser Person bereits kommuniziert. 
![](https://i.imgur.com/QgGmWuV.png)

## Anwendungsgebiet

Unsere App soll eine sichere, einfache und vertrauenswürdige Plattform bereitstellen, um mit Freunden während des Alltags zu interagieren. 


## Technologien

- **React Native**: Frontend und Android/iOS App
- **Microservices**: Um verschiedene Technologien im Backend verwenden zu können. Derzeit ist die Verwendung folgender Programmiersprachen geplant: 
    - C#
    - Node.js
    - Rust
- **Containerization mit Docker und Kubernetes**: Damit die Server einfach skaliert werden können und überall laufen, werden dafür Docker Images erstellt. 
- **CI/CD:** Um die Entwicklung möglichst effizient zu gestalten, werden bei jedem Push zum Master Branch automatisch getestet und gebaut. Die Docker Images, die automatisch gebaut werden, können dabei auch gleich zum Production Server gesendet werden. 
- **Open Source:** Derzeit gibt es noch keine transparente und open-source Implementierung eines ähnlichen Programms. Darum werden wir unser Projekt auf Github unter dieser Organisation veröffentlichen: https://github.com/opnsnap
- **Authentifizierung mittels OpenID und OAuth:** Um das Onboarding möglichst einfach zu gestalten, sollten Nutzer sich mittels Google/Microsoft/Github oder ähnlichen Providern einloggen können. 
- **End-to-end Encryption**: Um die Sicherheit der Daten zu gewährleisten, soll der Server niemals die Daten der User einsehen können. 
- **Modernes UI:** Um ein einheitliches und modernes Design zu präsentieren, verwenden wir die [RNUI](https://wix.github.io/react-native-ui-lib/) library.
- **Speicherung der Daten mittels [MinIO](https://min.io/)**
