Mikroogłoszenia pomocy sąsiedzkiej - Next.js Full-Stack Application
LocalAid to platforma łącząca sąsiadów, którzy potrzebują pomocy z tymi, którzy mogą jej udzielić. Pożycz narzędzie, pomóż w zakupach, lub znajdź kogoś kto pomoże w transporcie.
- Next.js 15.5 - React framework z App Router + Turbopack
- React 19 - najnowsza wersja React
- TypeScript 5 - typowanie
- Tailwind CSS v4 - stylowanie
- NextAuth v5 - autentykacja
- Next.js API Routes - backend API
- Prisma ORM - zarządzanie bazą danych
- SQLite - baza danych (zero konfiguracji!)
- bcryptjs - hashowanie haseł
- Zod - walidacja danych
git clone <this.repo.link>
cd localaidnpm installSkopiuj .env.example do .env:
cp .env.example .envPlik .env jest już skonfigurowany dla lokalnego developmentu.
Projekt już zawiera bazę z przykładowymi danymi!
Jeśli chcesz zresetować bazę:
npm run db:reset
npm run db:seednpm run devOtwórz http://localhost:3000 w przeglądarce.
Aplikacja zawiera 3 przykładowych użytkowników:
| Hasło | Opis | |
|---|---|---|
jan.kowalski@example.com |
password123 |
Ma ogłoszenia o narzędziach |
anna.nowak@example.com |
password123 |
Oferuje pomoc w zakupach |
piotr.wisniewski@example.com |
password123 |
Prosi o pomoc w transporcie |
-
✅ Autentykacja
- Rejestracja użytkowników
- Logowanie (email + hasło)
- Wylogowanie
- Ochrona chronionych stron
-
✅ Baza danych
- SQLite z Prisma ORM
- Modele: User, Post, Comment, Rating
- Seed z przykładowymi danymi
- 📝 Dodawanie ogłoszeń
- 🔍 Filtrowanie po kategorii i lokalizacji
- 💬 System komentarzy
- ⭐ Oceny użytkowników
- 🗺️ Mapa z lokalizacją ogłoszeń
- 👤 Profile użytkowników
localaid/
├── prisma/
│ ├── schema.prisma # Modele bazy danych
│ ├── seed.js # Przykładowe dane
│ └── dev.db # SQLite database (88KB)
│
├── src/
│ ├── app/
│ │ ├── api/ # Backend API Routes
│ │ ├── auth/ # Strony autentykacji
│ │ ├── layout.tsx # Root layout
│ │ └── page.tsx # Strona główna
│ │
│ ├── components/ # React components
│ │ └── providers/
│ │
│ ├── lib/
│ │ ├── prisma.ts # Prisma client
│ │ ├── auth.ts # NextAuth config
│ │ └── utils.ts # Helper functions
│ │
│ ├── types/ # TypeScript types
│ └── constants/ # Kategorie i stałe
│
├── .env # Konfiguracja (gitignored)
├── .env.example # Przykładowa konfiguracja
└── package.json
# Development
npm run dev # Uruchom serwer dev
# Database
npm run db:generate # Generuj Prisma Client
npm run db:push # Wypchaj schemat do bazy
npm run db:seed # Dodaj przykładowe dane
npm run db:reset # Zresetuj bazę danych
npm run db:studio # Otwórz Prisma Studio (GUI)
# Build
npm run build # Build produkcyjny
npm start # Uruchom build produkcyjny
# Lint
npm run lint # Sprawdź kodPodgląd bazy danych w GUI:
npx prisma studioOtwórz http://localhost:5555
npx prisma generatenpx prisma db push
npm run db:seednpm run dev -- -p 3001# Database
DATABASE_URL="file:./dev.db"
# NextAuth
NEXTAUTH_URL="http://localhost:3000"
AUTH_SECRET="your-secret-key-here"Wygeneruj secret key:
openssl rand -base64 32Ten projekt został stworzony jako projekt inżynierski. Pull requesty są mile widziane!
MIT
Projekt inżynierski - LocalAid