Skip to content

michredk/FlashGPT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FlashGPT

Aplikacja SpringBoot dla portalu do grupowego tworzenia i dzielenia się fiszkami. Daje możliwość tworzenia grup, przedmiotów w grupach oraz talii fiszek dla danych przedmiotów. Zaimplementowano uwierzytelnianie i autoryzację JWT, chat tekstowy oraz wspomaganie tworzenia fiszek przez ChatGPT.

Uruchomienie:

docker-compose -p flashgpt up --build --remove-orphans --force-recreate

Użytkownicy


POST /api/auth/register

Rejestracja. Wymagane parametry:

  • firstname: String
  • lastname: String
  • email: String
  • password: String
  • role: enum(USER, MANAGER, ADMIN)

Zwraca:

  • access_token: String
  • refresh_token: String

GET /api/check

Zwraca wiadomość zalogowanemu użytkownikowi.


GET /api/users[?id={}]

Zwraca dane użytkownika. Opcjonalny parametr: id w przypadku jego braku zwraca aktualnie zalogowanego użytkownika.


POST /api/auth/login

Logowanie. Wymagane parametry:

  • email: String
  • password: String

Zwraca:

  • access_token: String
  • refresh_token: String

PATCH /api/users

Zmiana hasła. Wymagane parametry:

  • currentPassword: String
  • newPassword: String
  • confirmationPassword: String

POST /api/auth/refresh-token

Zmiana tokenu. Wymagany refresh_token w nagłówku Authorization. Zwraca:

  • access_token: String
  • refresh_token: String

GET /api/auth/logout

Wylogowanie.


Grupy (wymaga roli USER)

POST /api/group/create

Tworzenie grupy. Wymaga access token jako bearer token. Wymagane body:

  • name: String
  • code: String

POST /api/group/join

Dołączanie do grupy. Wymaga access token jako bearer token. Wymagane body:

  • code: String

GET /api/group/user-groups

Zwraca listę grup użytkownika. Wymaga access token jako bearer token.


Przedmioty (wymaga roli USER)

POST /api/subject/create-subject

Dodanie przedmiotu do grupy. Wymaga access token jako bearer token. Wymagane body:

  • groupId: Integer
  • name: String

GET /api/subject/get-subjects?groupId={}

Zwróć przedmioty danej grupy. Wymaga access token jako bearer token. Wymagany parametr:

  • groupId: Integer

Chat

http://localhost:8080/ws

Broker czatu. Lokalnie uruchomiony serwer działa pod tym adresem.

/topic/{subjectId}

Dla wiadomości czatu danego przedmiotu należy zasubskrybować topic.

/app/{subjectId}

Ścieżka do wysyłania wiadomości. Zawartość wiadomości to tekstowy JSON z polami:

  • sender: String (id użytkownika)
  • content: String

Serwer przesyła do subskrybentów JSON z polami (sender, content, id, date).

GET /api/message/?subjectId={}&timestamp={}

Zwraca wiadomości przedmiotu. Zwraca najnowsze 20 wiadomości dla przedmiotu, opcjonalnie 20 ostatnich wiadomości przed datą timestamp.

Wymagany parametr:

  • subjectId: Integer

Opcjonalny parametr

  • timestamp: Timestamp (String formatu yyyy-mm-dd hh:mm:ss.[fff...])

Fiszki (wymaga roli USER)

POST /api/deck/create

Tworzenie talii fiszek. Wymaga access token jako bearer token. Wymagane parametry:

  • name: String
  • groupId: Integer
  • subjectId: Integer

POST /api/flashcards/create-flashcard

Dodanie fiszki do talii. Wymaga access token jako bearer token. Wymagane body:

  • front: String
  • back: String
  • groupId: Integer
  • deckId: Integer

GET /api/decks/subject-decks?subjectId={}

Zwraca wszystkie talie danego przedmiotu i jego fiszki Wymaga access token jako bearer token. Wymagany parametr:

  • subjectId: Integer

GET /api/flashcards/deck-flashcards?groupId={}&deckId={}

Zwraca fiszki danej talii. Wymaga access token jako bearer token. Wymagane parametry:

  • groupId: Integer
  • subjectId: Integer

GPT (wymaga roli USER)

GET /api/gpt/flashcard-hint?groupName={}&userPrompt={}

Podpowiedź rewersu dla fiszki. Zwraca odpowiedź od gpt-3.5-turbo. Wymaga access token jako bearer token. Parametry:

  • groupName: String
  • userPrompt: String

About

SpringBoot application for a portal for group creation and sharing of fiches.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published