Skip to content

Repository files navigation

Retro Synth Relationship

Aplicație web cu temă retro pentru vizualizarea apropierii și depărtării într-o relație dintre doi utilizatori, folosind o animație cu dublă elice (double helix).

Caracteristici

  • Autentificare securizată cu JWT și bcrypt
  • Sistem de invitație cu coduri unice pentru formarea relațiilor
  • Animație double helix care reflectă vizual apropierea și distanța dintre parteneri
  • Actualizări în timp real folosind WebSockets
  • Design retro cu efecte CRT, culori neon și fonturi pixelate

Tehnologii

Frontend

  • React.js
  • React Router pentru navigare
  • HTML5 Canvas pentru animație
  • Comunicare API cu Axios
  • WebSockets pentru actualizări în timp real

Backend

  • Go (Golang) cu Fiber framework
  • PostgreSQL pentru baza de date
  • JWT pentru autentificare
  • WebSockets pentru comunicare în timp real

Structura proiectului

Frontend (React)

relationship-helix-frontend/
├── public/
├── src/
│   ├── components/ (componente UI)
│   ├── context/ (gestionare stare globală)
│   ├── services/ (comunicare cu API)
│   └── styles/ (CSS)

Backend (Go)

relationship-helix-backend/
├── cmd/
│   └── server/ (punctul de intrare)
├── internal/
│   ├── api/ (handlere, middleware și rute)
│   ├── config/ (configurație aplicație)
│   ├── db/ (acces bază de date și migrări)
│   ├── models/ (structuri de date)
│   └── utils/ (funcții utilitare)

Instalare și rulare

Cerințe

  • Node.js (16+)
  • Go (1.18+)
  • PostgreSQL
  • Git

Pași pentru rulare locală

Backend

  1. Clonează repository-ul
  2. Navighează în directorul backend
    cd relationship-helix-backend
  3. Instalează dependențele Go
    go mod download
  4. Configurează baza de date PostgreSQL
    CREATE DATABASE relationship_helix;
  5. Setează variabilele de mediu în fișierul .env (vezi .env.example)
  6. Rulează aplicația
    go run cmd/server/main.go

Frontend

  1. Navighează în directorul frontend
    cd relationship-helix-frontend
  2. Instalează dependențele Node.js
    npm install
  3. Setează variabilele de mediu în fișierul .env (vezi .env.example)
  4. Rulează aplicația
    npm start
  5. Accesează aplicația în browser la http://localhost:3000

Utilizare

  1. Creează un cont nou sau autentifică-te
  2. Generează un cod de invitație și trimite-l partenerului tău
  3. Partenerul tău introduce codul pentru a stabili relația
  4. Vizualizați animația double helix care reprezintă relația voastră
  5. Actualizați-vă poziția (apropiat/distant) și urmăriți în timp real schimbările

Mockup-uri

Licență

Acest proiect este disponibil sub licența MIT. Consultă fișierul LICENSE pentru detalii.

Autori

Stefan Bibirus