https://github.com/maurice-l/tutify
Ein Franchiseplattform für Nachhilfe Dienstleistungen mit Vue.js und FastAPI
https://github.com/maurice-l/tutify
backend fastapi frontend javascript oracle-database python vue
Last synced: 14 days ago
JSON representation
Ein Franchiseplattform für Nachhilfe Dienstleistungen mit Vue.js und FastAPI
- Host: GitHub
- URL: https://github.com/maurice-l/tutify
- Owner: Maurice-L
- Created: 2025-04-06T17:34:59.000Z (18 days ago)
- Default Branch: main
- Last Pushed: 2025-04-06T19:02:25.000Z (18 days ago)
- Last Synced: 2025-04-09T22:03:09.897Z (15 days ago)
- Topics: backend, fastapi, frontend, javascript, oracle-database, python, vue
- Language: Vue
- Homepage:
- Size: 428 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Tutify

**Tutify** ist eine Webanwendung, die ein Frontend mit **Vue.js** und ein Backend mit **FastAPI** verwendet. Das Backend kommuniziert mit einer **Oracle-Datenbank**, um Daten zu speichern und abzurufen. Dieses Projekt wurde entwickelt, um eine schnelle und benutzerfreundliche Plattform für das Management von Tutoren und Lernmaterialien zu bieten.
## Architektur
- **Frontend**: Vue.js
- **Backend**: FastAPI
- **Datenbank**: Oracle Database## Inhaltsverzeichnis
- [Features](#features)
- [Installation](#installation)
- [Backend Setup](#backend-setup)
- [Frontend Setup](#frontend-setup)
- [Datenbank Setup](#datenbank-setup)
- [Usage](#usage)
- [API Endpoints](#api-endpoints)
- [Technologien](#technologien)## Features
- Benutzerverwaltung (Registrierung, Login)
- Verwaltung von Kunden und Kursen
- Anbindung an Oracle-Datenbank für persistente Datenspeicherung## Installation
### Backend Setup
1. Klone das Repository:
```bash
git clone https://github.com/dein-benutzername/tutify.git
cd backend
```2. Erstelle ein virtuelles Python-Umfeld und installiere die Abhängigkeiten:
```bash
python -m venv venv
source venv/bin/activate # Auf Windows: venv\Scripts\activate
pip install -r requirements.txt
```3. Konfiguriere die Oracle-Datenbank-Verbindung:
- Stelle sicher, dass du die Zugangsdaten für die Oracle-Datenbank hast.
- Bearbeite die Umgebungsvariablen oder die Konfigurationsdatei im Backend, um die Verbindung zur Datenbank herzustellen.4. Starte den FastAPI-Server:
```bash
uvicorn backend.main:app --reload
```Der Server ist jetzt unter `http://localhost:8000` verfügbar.
### Frontend Setup
1. Wechsel zum Frontend-Verzeichnis:
```bash
cd frontend
```2. Installiere die Frontend-Abhängigkeiten:
```bash
npm install
```3. Starte den Vue.js-Entwicklungsserver:
```bash
npm run serve
```Das Frontend ist jetzt unter `http://localhost:8080` verfügbar.
### Datenbank Setup
1. Stelle sicher, dass die Oracle-Datenbank ordnungsgemäß läuft und zugänglich ist.
2. Erstelle die erforderlichen Tabellen und Strukturen basierend auf den SQL-Skripten im `database/`-Verzeichnis.Beispiel:
```bash
sqlplus user/password@hostname:port/sid @database/setup.sql
```## Usage
Sobald sowohl das Backend als auch das Frontend laufen, kannst du die Anwendung im Browser aufrufen:
- **Frontend**: `http://localhost:8080`
- **Backend**: `http://localhost:8000`## API Endpoints
Die API des Backends bietet eine Vielzahl von Endpunkten zur Interaktion mit der Datenbank. Hier sind die wichtigsten Endpunkte:
### Benutzer-Management
- `POST /login`: Benutzeranmeldung
- `POST /register`: Benutzerregistrierung### Kunden-Management
- `GET /customer`: Liste aller Kunden
- `GET /customer/{id}`: Details eines spezifischen Kunden
- `POST /customer`: Einen neuen Kunden hinzufügen
- `DELETE /customer`: Einen bestehenden Kunden löschen
- `GET /customer/adress`: Adressen der Kunden abrufen### Kurs-Management
- `GET /course`: Liste aller Kurse
- `GET /course/{id}`: Details eines spezifischen Kurses
- `POST /course/subscribe`: Einen Kurs abonnieren
- `GET /course/subscribed/{id}`: Abonnierte Kurse eines Kunden abrufen### Branch-Management
- `GET /branch`: Liste aller Zweigstellen
- `GET /branch/{id}`: Details einer spezifischen Zweigstelle
- `GET /branch/supervisor/{id}`: Vorgesetzten einer Zweigstelle abrufenDie vollständige API-Dokumentation ist unter `http://localhost:8000/docs` verfügbar.
## Technologien
- **Vue.js**: JavaScript-Framework für das Frontend
- **FastAPI**: High-Performance Web-Framework für das Backend
- **Oracle Database**: Relationale Datenbank für die Datenspeicherung
- **SQLAlchemy**: ORM für die Kommunikation mit der Oracle-Datenbank
- **Pydantic**: Datenvalidierung und Serialisierung im Backend