Skip to content

wielauritz/NORA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

209 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

NORA - Nordakademie Organizer & Room Assistant

NORA Logo

Eine moderne, studentenzentrierte Plattform fΓΌr die Nordakademie

License JavaScript Capacitor Go


πŸ“‹ Inhaltsverzeichnis


🎯 Über NORA

NORA (Nordakademie Organizer & Room Assistant) ist eine umfassende Web-Plattform, die speziell fΓΌr Studierende der Nordakademie entwickelt wurde. Die Anwendung vereint alle wichtigen organisatorischen Tools in einer intuitiven, modernen OberflΓ€che und macht das Studentenleben deutlich einfacher.

Vision

Unsere Vision ist es, den Studienalltag an der Nordakademie durch intelligente Digitalisierung zu vereinfachen. NORA bietet nicht nur Zugriff auf wichtige Informationen wie StundenplΓ€ne und Raumbelegungen, sondern fΓΆrdert auch die Vernetzung unter Studierenden und ermΓΆglicht eine bessere Organisation des akademischen Lebens.

Motivation

NORA entstand aus dem BedΓΌrfnis heraus, die verschiedenen organisatorischen Aspekte des Studiums an der Nordakademie zu zentralisieren. Anstatt zwischen verschiedenen Systemen und Plattformen zu wechseln, bietet NORA eine einheitliche LΓΆsung fΓΌr:

  • Stundenplanverwaltung: Übersichtliche Darstellung aller Veranstaltungen mit Zeitangaben, RΓ€umen und Dozenten
  • Raumplanung: Interaktive GebΓ€udeplΓ€ne mit Echtzeitinformationen zur Raumbelegung
  • PrΓΌfungsorganisation: Verwaltung und Übersicht ΓΌber anstehende Klausuren
  • Soziale Vernetzung: Freundeslisten und gemeinsame Stundenplanansichten
  • Kalenderintegration: Export und Synchronisation mit externen Kalendern

✨ Features

πŸ—“οΈ Intelligente Stundenplanverwaltung

  • Personalisierte Ansicht: Automatische Filterung nach Zenturie
  • Zeitbereichsauswahl: Flexible Darstellung von 0-24 Uhr
  • Freundschafts-Feature: Einsicht in StundenplΓ€ne von Kommilitonen
  • Custom Hours: Eigene Termine und Veranstaltungen hinzufΓΌgen
  • Raumsuche: Schnelles Finden freier RΓ€ume fΓΌr bestimmte Zeitslots

🏒 Interaktiver Raumplan

  • GebΓ€udeΓΌbersicht: Detaillierte PlΓ€ne fΓΌr alle Nordakademie-GebΓ€ude
  • Stockwerksnavigation: Etagenweise Ansicht mit Raumdetails
  • Rauminformationen:
    • Raumnummer und Name
    • Aktuelle Belegung
    • NΓ€chste Veranstaltung
    • KapazitΓ€t und Ausstattung
  • Such- und Filterfunktion: Schnelles Auffinden spezifischer RΓ€ume
  • Echtzeit-Belegungsstatus: Sofortige Übersicht ΓΌber freie RΓ€ume

πŸ“š Klausurenverwaltung

  • KlausurΓΌbersicht: Chronologische Auflistung anstehender PrΓΌfungen
  • Intelligente Eingabe:
    • Autocomplete fΓΌr Modulnummern
    • Autocomplete fΓΌr Kursnamen
    • Automatische Synchronisation beider Felder
  • PrΓΌfungsdetails:
    • Datum und Uhrzeit
    • Dauer
    • Raum
    • Kurs und Modulnummer
  • Countdown: Anzeige der verbleibenden Zeit bis zur Klausur

πŸ‘₯ Soziale Features

  • Freundesliste: Verwaltung von Kontakten innerhalb der Plattform
  • Stundenplan-Sharing: Einsicht in die ZeitplΓ€ne von Freunden
  • Zenturien-Anzeige: Übersicht ΓΌber die Zenturien aller Freunde
  • Validierung: Nur @nordakademie.de E-Mail-Adressen

πŸ“… Kalender-Integration

  • Webcal-Export: Automatischer Import in alle gΓ€ngigen Kalender-Apps
  • iCal-Download: Manuelle Kalender-Integration
  • Plattform-Support:
    • Apple Kalender (macOS, iOS)
    • Google Kalender
    • Microsoft Outlook
    • Andere iCal-kompatible Anwendungen
  • Automatische Updates: Γ„nderungen werden in Echtzeit synchronisiert

πŸ” Globale Suche

  • Schnellsuche: Strg+K / Cmd+K fΓΌr sofortigen Zugriff
  • Kategorien:
    • Kurse
    • RΓ€ume
    • Zenturien
    • Dozenten
  • Live-Ergebnisse: Sofortige Anzeige wΓ€hrend der Eingabe
  • Keyboard-Navigation: VollstΓ€ndige Tastatursteuerung

🎨 Modernes UI/UX Design

  • Responsive Design: Optimiert fΓΌr Desktop, Tablet und Mobile
  • Glassmorphism: Moderne, transparente Designelemente
  • Gradient Accents: FarbverlΓ€ufe im Nordakademie-Branding
  • Dark Mode Ready: Vorbereitet fΓΌr zukΓΌnftige Dark-Mode-Integration
  • Accessibility: Barrierefreie Bedienung
  • Performance: Optimierte Ladezeiten und flΓΌssige Animationen

πŸ› οΈ Technologie-Stack

Frontend

Core Technologies

  • HTML5 - Strukturierung der Anwendung
  • CSS3 - Modernes Styling mit Glassmorphism
  • JavaScript ES6+ - Clientseitige Logik und InteraktivitΓ€t
  • TailwindCSS 3.x - Utility-First CSS Framework via CDN
  • Capacitor 7.x - Native Mobile App Wrapper (iOS & Android)

Features & Utilities

  • Fetch API - HTTP-Requests und API-Kommunikation
  • LocalStorage API - Client-Side Session Persistence
  • DOM API - Dynamische UI-Updates
  • Native Modules - Zugriff auf Device-Features via Capacitor

Backend

Framework & Core

  • Go 1.21+ - Hochperformante Backend-Sprache
  • Fiber v2 - Express-inspiriertes Web Framework
  • GORM - ORM fΓΌr Datenbankzugriff
  • PostgreSQL 14+ - Relationale Datenbank

Middleware & Security

  • CORS Middleware - Cross-Origin Resource Sharing
  • Logger Middleware - Request Logging
  • JWT (golang-jwt/jwt/v5) - Token-basierte Authentifizierung
  • bcrypt - Passwort-Hashing
  • Godotenv - Environment Configuration

APIs & Services

  • RESTful API Design - Standardisierte Endpunkte
  • Session Management - UUID-basierte Sessions
  • Email Service - Transaktionale E-Mails
  • Calendar Service - iCal/Webcal Generation

DevOps & Infrastructure

  • Nginx - Reverse Proxy und Static File Server
  • SSL/TLS - HTTPS mit Let's Encrypt
  • Systemd - Service Management
  • Git - Version Control

πŸ—οΈ Architektur

System-Übersicht

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                         Client Layer                        β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”‚
β”‚  β”‚   Browser    β”‚   β”‚   iOS App    β”‚  β”‚  Android App β”‚      β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜      β”‚
β”‚         β”‚                  β”‚                 β”‚              β”‚
β”‚         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜              β”‚
β”‚                            β”‚                                β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                             β”‚ HTTPS
                             β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                      Nginx Reverse Proxy                    β”‚
β”‚  β€’ SSL Termination                                          β”‚
β”‚  β€’ Static File Serving                                      β”‚
β”‚  β€’ Load Balancing                                           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                             β”‚
                             β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                 Frontend (HTML/JS/Capacitor)                β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”          β”‚
β”‚  β”‚  Dashboard  β”‚  β”‚ Stundenplan β”‚  β”‚  Raumplan   β”‚          β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜          β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”          β”‚
β”‚  β”‚   Navbar    β”‚  β”‚   Modals    β”‚  β”‚    Auth     β”‚          β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜          β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                             β”‚ REST API
                             β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    Backend (Go/Fiber)                       β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”‚
β”‚  β”‚                  API Services                       β”‚    β”‚
β”‚  β”‚  β€’ Auth Service     β€’ Schedule Service              β”‚    β”‚
β”‚  β”‚  β€’ User Service     β€’ Room Service                  β”‚    β”‚
β”‚  β”‚  β€’ Exam Service     β€’ Friend Service                β”‚    β”‚
β”‚  β”‚  β€’ Calendar Service β€’ Search Service                β”‚    β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β”‚
β”‚                             β”‚                               β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”‚
β”‚  β”‚              Middleware Layer                       β”‚    β”‚
β”‚  β”‚  β€’ Authentication  β€’ Logging  β€’ CORS                β”‚    β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β”‚
β”‚                             β”‚                               β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
                              β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                  PostgreSQL Database                        β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”‚
β”‚  β”‚  Users   β”‚  β”‚ Sessions β”‚  β”‚  Events  β”‚  β”‚  Rooms   β”‚     β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”‚
β”‚  β”‚  Exams   β”‚  β”‚ Friends  β”‚  β”‚ Zenturienβ”‚  β”‚ Courses  β”‚     β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Datenbankschema (Vereinfacht)

-- Benutzer und Authentifizierung
Users
  β”œβ”€ id (PK)
  β”œβ”€ email
  β”œβ”€ password_hash
  β”œβ”€ first_name
  β”œβ”€ last_name
  β”œβ”€ zenturie_id (FK)
  └─ subscription_uuid

Sessions
  β”œβ”€ id (PK)
  β”œβ”€ user_id (FK)
  β”œβ”€ session_id (UUID)
  └─ expires_at

-- Akademische Daten
Zenturien
  β”œβ”€ id (PK)
  β”œβ”€ name
  └─ year

Courses
  β”œβ”€ id (PK)
  β”œβ”€ module_number
  └─ name

Events
  β”œβ”€ id (PK)
  β”œβ”€ zenturie_id (FK)
  β”œβ”€ course_id (FK)
  β”œβ”€ room_id (FK)
  β”œβ”€ start_time
  β”œβ”€ end_time
  └─ professor

Exams
  β”œβ”€ id (PK)
  β”œβ”€ user_id (FK)
  β”œβ”€ course_id (FK)
  β”œβ”€ exam_date
  β”œβ”€ duration
  └─ room_id (FK)

-- GebΓ€ude und RΓ€ume
Buildings
  β”œβ”€ id (PK)
  β”œβ”€ name
  └─ code

Rooms
  β”œβ”€ id (PK)
  β”œβ”€ building_id (FK)
  β”œβ”€ room_number
  β”œβ”€ room_name
  β”œβ”€ floor
  └─ capacity

-- Soziale Features
Friends
  β”œβ”€ id (PK)
  β”œβ”€ user_id (FK)
  └─ friend_user_id (FK)

CustomHours
  β”œβ”€ id (PK)
  β”œβ”€ user_id (FK)
  β”œβ”€ title
  β”œβ”€ start_time
  β”œβ”€ end_time
  β”œβ”€ location
  └─ location_type

API-Endpunkte Übersicht

Authentifizierung

POST   /v1/register          - Benutzerregistrierung
POST   /v1/login             - Login und Session-Erstellung
POST   /v1/logout            - Session beenden
POST   /v1/reset-request     - Passwort-Reset anfordern
POST   /v1/reset-confirm     - Passwort zurΓΌcksetzen
GET    /v1/verify            - E-Mail-Verifizierung

Benutzerverwaltung

GET    /v1/user/profile      - Benutzerprofil abrufen
PUT    /v1/user/profile      - Profil aktualisieren
PUT    /v1/user/zenturie     - Zenturie setzen
GET    /v1/zenturien         - Alle Zenturien abrufen

Stundenplan

GET    /v1/schedule          - Eigene Events abrufen
GET    /v1/schedule/friend   - Friend-Schedule abrufen
POST   /v1/custom-hours      - Custom Hour erstellen
GET    /v1/custom-hours      - Custom Hours abrufen
DELETE /v1/custom-hours/:id  - Custom Hour lΓΆschen

RΓ€ume

GET    /v1/rooms             - Alle RΓ€ume abrufen
GET    /v1/rooms/:id         - Raumdetails abrufen
GET    /v1/rooms/free        - Freie RΓ€ume finden

Klausuren

GET    /v1/exams             - Eigene Klausuren abrufen
POST   /v1/exams             - Klausur erstellen
DELETE /v1/exams/:id         - Klausur lΓΆschen

Soziale Features

GET    /v1/friends           - Freundesliste abrufen
POST   /v1/friends           - Freund hinzufΓΌgen
DELETE /v1/friends/:id       - Freund entfernen

Suche & Kurse

GET    /v1/search            - Globale Suche
GET    /v1/courses           - Alle Kurse abrufen

Kalender

GET    /v1/calendar/subscribe/:uuid  - iCal-Feed abrufen

πŸ“š API-Dokumentation

Authentifizierung

Alle geschΓΌtzten Endpunkte erfordern eine gΓΌltige Session-ID, die als Query-Parameter session_id oder im Body ΓΌbergeben wird.

Session-Ablauf

  1. Login mit E-Mail und Passwort
  2. Backend generiert UUID-Session und speichert sie
  3. Client erhΓ€lt Session-ID und speichert sie im LocalStorage
  4. Bei jedem Request wird Session-ID mitgesendet
  5. Backend validiert Session und prΓΌft Ablaufdatum

Fehlerbehandlung

Alle API-Antworten folgen einem einheitlichen Schema:

Erfolg (200 OK)

{
  "data": { ... },
  "message": "Success"
}

Fehler (4xx, 5xx)

{
  "error": "Error message",
  "detail": "Detailed error description"
}

Rate Limiting

Aktuell gibt es kein Rate Limiting, dies ist fΓΌr zukΓΌnftige Versionen geplant.


πŸ‘¨β€πŸ’» Entwickler

NORA wurde entwickelt von einem engagierten Team von Nordakademie-Studierenden:

Entwickelt wΓ€hrend

Dieses Projekt entstand im Rahmen des NORDAKADEMIE Hackathon 2025 und wird seitdem kontinuierlich weiterentwickelt.


🀝 Contributing

Wir freuen uns ΓΌber BeitrΓ€ge zur Verbesserung von NORA!

Contribution-Prozess

  1. Fork das Repository
  2. Erstelle einen Feature-Branch (git checkout -b feature/AmazingFeature)
  3. Commit deine Γ„nderungen (git commit -m 'Add some AmazingFeature')
  4. Push zum Branch (git push origin feature/AmazingFeature)
  5. Erstelle einen Pull Request

Pull Request Guidelines

  • Klare Beschreibung: ErklΓ€re ausfΓΌhrlich, was der PR macht und warum
  • Kleine, fokussierte Γ„nderungen: PRs sollten eine spezifische Funktion/Bugfix adressieren
  • Code-QualitΓ€t: Halte dich an den bestehenden Code-Stil
  • Tests: Stelle sicher, dass bestehende FunktionalitΓ€t nicht beeintrΓ€chtigt wird
  • Dokumentation: Aktualisiere die README, falls notwendig

Review-Prozess

Alle Pull Requests werden von den Core-Entwicklern intensiv geprΓΌft:

  • Code Review: ÜberprΓΌfung auf QualitΓ€t und Best Practices
  • Funktionstest: Validierung der implementierten Features
  • Security Review: PrΓΌfung auf potenzielle SicherheitslΓΌcken
  • Performance Check: Analyse der Performance-Auswirkungen

Wichtig: Pull Requests werden nur akzeptiert, wenn sie einen echten Mehrwert bieten und den QualitΓ€tsstandards entsprechen. Die finale Entscheidung liegt bei den Core-Entwicklern.

Bug Reports & Feature Requests

  • Nutze die GitHub Issues fΓΌr Bug Reports und Feature Requests
  • Bug Reports sollten enthalten:
    • Beschreibung des Problems
    • Schritte zur Reproduktion
    • Erwartetes vs. tatsΓ€chliches Verhalten
    • Screenshots (falls relevant)
    • Browser/System-Informationen
  • Feature Requests sollten enthalten:
    • Use Case und Motivation
    • Vorgeschlagene Implementierung
    • MΓΆgliche Alternativen

πŸ“„ Lizenz

Copyright Β© 2025 NORA Development Team

Dieses Projekt ist unter einer proprietΓ€ren Source-Available Lizenz verΓΆffentlicht.

Zusammenfassung

βœ… Erlaubt:

  • Einsehen des Quellcodes
  • Eigene Kopien fΓΌr persΓΆnliche, nicht-kommerzielle Zwecke
  • BeitrΓ€ge ΓΌber Pull Requests

❌ Nicht erlaubt ohne schriftliche Genehmigung:

  • Kommerzielle Nutzung
  • Weiterverbreitung
  • Modifikation fΓΌr andere Projekte
  • Verwendung in anderen Produkten oder Services

FΓΌr die vollstΓ€ndige Lizenz siehe LICENSE Datei.

FΓΌr Anfragen bezΓΌglich kommerzieller Nutzung oder spezieller Lizenzen, kontaktiere bitte die Core-Entwickler.


πŸ“ž Kontakt & Support

FΓΌr Fragen, Anregungen oder Support:


Entwickelt mit ❀️ für die NORDAKADEMIE

Website β€’ GitHub β€’ Report Bug

About

Nordakademie Organizer & Room Assistant

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors