Komunikator

Użyte technologie:
Funkcjonalności
Rejestracja przy użyciu email i hasła lub użycie dostawcy uwierzytelnienia (Google, Github)
Prywatne i grupowe konwersacje w czasie rzeczywistym (przez pusher)
Edycja informacji o twoim koncie (imię, zdjęcie profilowe)
Status aktywności użytkowników
Wysyłanie obrazów (przez cloudinary i bibliotekę next-cloudinary)
Planowane funkcjonalności
Zarządzanie użytkownikami w grupie - dodawanie, usuwanie
Role w czatach grupowych (moderator, administrator)
Dodanie podglądu do przesłanego odnośnika
Łączenie dostawców uwierzytelniania do utworzonych kont, bądź dodanie hasła do konta stworzonego przez providera
Resetowanie hasła
Weryfikacja e-mail
Jak odtworzyć projekt
1. Sklonuj repozytorium używając gita
git clone https://github.com/c3sare/messenger
2. Zainstaluj biblioteki
bun install
3. Dodaj zmienne środowiskowe (plik .env)
DATABASE_URL=
AUTH_SECRET=
AUTH_GOOGLE_ID=
AUTH_GOOGLE_SECRET=
AUTH_GITHUB_ID=
AUTH_GITHUB_SECRET=
PUSHER_APP_ID=
PUSHER_APP_SECRET=
NEXT_PUBLIC_PUSHER_APP_CLUSTER=
NEXT_PUBLIC_PUSHER_APP_KEY=
NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME=DATABASE_URL jest adresem do bazy danych postgres - neon
AUTH_SECRET jest kluczem do kodowania/dekodowania token’a JWT, wygeneruj go w wierszu poleceń przez openssl rand -base64 33
AUTH_GOOGLE_ID i AUTH_GOOGLE_SECRET, są niezbędne do umożliwienia logowania przez konto Google, PORADNIK
AUTH_GITHUB_ID i AUTH_GITHUB_SECRET, są niezbędne do umożliwienia logowania przez konto Github, PORADNIK
PUSHER_APP_ID, PUSHER_APP_SECRET, NEXT_PUBLIC_PUSHER_APP_CLUSTER i NEXT_PUBLIC_PUSHER_APP_KEY, potrzebne do obsługi wiadomości w czasie rzeczywistym, stwórz darmowe konto na tej stronie
NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME, jest to nazwa chmury w serwisie cloudinary.