Skip to content

A fullstack app for managing your events made with React, Spring Boot and PostgreSQL

Notifications You must be signed in to change notification settings

azakhardev/EventHub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EventHub

EventHub je desktopová aplikace vytvořená během letních prázdnin 2025. Aplikace umožňuje uživatelům vytvářet, sdílet a sledovat události s automatickými notifikacemi před jejich začátkem. Aplikace zároveň podporuje sledování uživatelů, opakování událostí, soukromé i veřejné eventy a reaktivní upozornění na změny v kalendáři. Pokud si chcete aplikaci vyzkoušet, jsou pro ní připraveny Image na DockerHub - stačí se jen řídit pokyny z kroku 🚀 Zprovoznění aplikace

🔧 Shrnutí celkových funkcí (kompletní)

🧑‍🤝‍🧑 Uživatelé

  • Přihlášení (JWT)
  • Profil uživatele
  • Sledování jiných uživatelů
  • Přehled sledovaných událostí

📅 Události

  • Tvorba/editace/mazání události
  • Atributy: název, popis, čas, místo, kategorie (label), barva, sdílený link
  • Připojení k privátním eventům pomoci tokenu eventu

🔔 Notifikace

  • Když někdo, koho sleduji, vytvoří/smaže/urpaví událost
  • Týden, den, hodinu a 10 minut před událostí, dle nastavení uživatele

🌐 Sdílení

  • Pozvání přátel na událost z menu události
  • Připojení přes token/přijmutí pozvánky na soukromý event nebo bez autorizace na veřejný

📁Struktura Projektu

EventHub/
├── Frontend/
│   ├── Dockerfile
│   └── (React projekt)
├── Backend/
│   ├── Dockerfile
│   └── (backend kód - Spring Boot)
├── PostgresqlDb/
│   └── create_db.sql
│	└── inserts.sql
├── docker-compose.yml
└── README.md

🚀Zprovoznění aplikace

  • Pro spuštění aplikace z dockeru je třeba mít nainstalovaný a spuštěný Docker nebo Docker Desktop (doporučeno)
  1. Vytvořte si soubor docker-compose.yml a vložte do něj tento kód:
services:
  frontend:
    image: artemzach/eventhub:frontend-latest
    ports:
      - "80:80"
    depends_on:
      - backend

  backend:
    image: artemzach/eventhub:backend-latest
    ports:
      - "8080:8080"
    environment:
      SPRING_DATASOURCE_URL: jdbc:postgresql://db:5432/eventhub
      SPRING_DATASOURCE_USERNAME: admin
      SPRING_DATASOURCE_PASSWORD: 123456Ab
    depends_on:
      - db

  db:
    image: artemzach/eventhub:db-latest
    restart: always
    environment:
      POSTGRES_DB: eventhub
      POSTGRES_USER: admin
      POSTGRES_PASSWORD: 123456Ab
    ports:
      - "5432:5432"
  1. Ve složce se souborem docker-compose.yml otevřete příkazový řádek a spusťte příkaz docker compose up -d
  2. Docker si automaticky stáhne a spustí moje image z DockerHubu
  3. Aplikace se spustí a pak:

Databázové napojení application.properties pro vývojářské prostředí:

spring.application.name=eventhub.restapi
spring.datasource.url=jdbc:postgresql://localhost:5432/EventHub
spring.datasource.username=admin
spring.datasource.password=123456Ab
spring.datasource.driver-class-name=org.postgresql.Driver
spring.security.user.name=artem
spring.security.user.password=secret1234!

spring.jpa.properties.hibernate.format_sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.show-sql=true

.env soubor pro FE :

VITE_API_URL=http://localhost:8080

🛢️Databázové schéma:

{E574B28B-76D9-4A96-BE7B-320D4D735387}

🛠 Tech stack

  • Frontend (FE): React 19, TypeScript, Vite
  • Styling & UI: TailwindCSS, Framer Motion, Lucide React, React Toastify, React Spinners
  • State & Data: React Query, Zustand
  • Backend (BE): Java 21, Spring Boot 3.5, Spring Data JPA, Spring Web, Spring Security, Spring Validation, JWT (jjwt)
  • Databáze: PostgreSQL
  • DevOps / Build: Docker, Docker Hub, Maven, ESLint

✨Případné vylepšení v budoucnu (podle nálady):

  • Přidat Redis pro cacheování nadcházejících eventů a přátel
  • Spouštět připomínky i pro eventy s opakováním
  • Přidat responzivitu
  • Upload profilových fotek do Cloudu + ukládání URL do db
  • Možnost upravit jednotlivé instance opakujících se eventů (ne všechny)
  • Implementovat Axios na Fe

About

A fullstack app for managing your events made with React, Spring Boot and PostgreSQL

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages