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.
- Frontend: Vue.js
- Backend: FastAPI
- Datenbank: Oracle Database
- Benutzerverwaltung (Registrierung, Login)
- Verwaltung von Kunden und Kursen
- Anbindung an Oracle-Datenbank für persistente Datenspeicherung
-
Klone das Repository:
git clone https://github.com/dein-benutzername/tutify.git cd backend -
Erstelle ein virtuelles Python-Umfeld und installiere die Abhängigkeiten:
python -m venv venv source venv/bin/activate # Auf Windows: venv\Scripts\activate pip install -r requirements.txt
-
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.
-
Starte den FastAPI-Server:
uvicorn backend.main:app --reload
Der Server ist jetzt unter
http://localhost:8000verfügbar.
-
Wechsel zum Frontend-Verzeichnis:
cd frontend -
Installiere die Frontend-Abhängigkeiten:
npm install
-
Starte den Vue.js-Entwicklungsserver:
npm run serve
Das Frontend ist jetzt unter
http://localhost:8080verfügbar.
-
Stelle sicher, dass die Oracle-Datenbank ordnungsgemäß läuft und zugänglich ist.
-
Erstelle die erforderlichen Tabellen und Strukturen basierend auf den SQL-Skripten im
database/-Verzeichnis.Beispiel:
sqlplus user/password@hostname:port/sid @database/setup.sql
Sobald sowohl das Backend als auch das Frontend laufen, kannst du die Anwendung im Browser aufrufen:
- Frontend:
http://localhost:8080 - Backend:
http://localhost:8000
Die API des Backends bietet eine Vielzahl von Endpunkten zur Interaktion mit der Datenbank. Hier sind die wichtigsten Endpunkte:
POST /login: BenutzeranmeldungPOST /register: Benutzerregistrierung
GET /customer: Liste aller KundenGET /customer/{id}: Details eines spezifischen KundenPOST /customer: Einen neuen Kunden hinzufügenDELETE /customer: Einen bestehenden Kunden löschenGET /customer/adress: Adressen der Kunden abrufen
GET /course: Liste aller KurseGET /course/{id}: Details eines spezifischen KursesPOST /course/subscribe: Einen Kurs abonnierenGET /course/subscribed/{id}: Abonnierte Kurse eines Kunden abrufen
GET /branch: Liste aller ZweigstellenGET /branch/{id}: Details einer spezifischen ZweigstelleGET /branch/supervisor/{id}: Vorgesetzten einer Zweigstelle abrufen
Die vollständige API-Dokumentation ist unter http://localhost:8000/docs verfügbar.
- 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