Web aplikacija koja omogućava korisnicima registraciju i kreiranje neograničenog broja personalnih QR kodova.
- 🔐 Registracija korisnika - Sigurna registracija s bcrypt hashiranjem lozinki
- 🔑 Prijava - Autentifikacija postojećih korisnika
- 📱 Višestruki QR kodovi - Kreirajte neograničen broj QR kodova
- ✏️ Prilagodljiv sadržaj - Dodajte URL-ove, tekst, kontakt podatke ili bilo što drugo
- 💾 MongoDB baza podataka - Pohrana svih korisničkih podataka i QR kodova
- 🗑️ Upravljanje QR kodovima - Brišite nepotrebne QR kodove
- 🎨 Moderna UI - Responzivni dizajn s dark mode podrškom
- ⬇️ Preuzimanje QR koda - Preuzmite bilo koji QR kod kao PNG sliku
- 🔍 Pregled svih QR kodova - Grid prikaz svih vaših QR kodova
- Next.js 15 - React framework
- TypeScript - Tipiziran JavaScript
- MongoDB - NoSQL baza podataka
- Mongoose - MongoDB ODM
- QRCode - QR kod generator
- Bcrypt - Hashiranje lozinki
- Tailwind CSS - CSS framework
- Kloniraj repozitorij:
git clone [url-repozitorija]
cd qrcodegen
- Instaliraj dependencies:
npm install
- Kreiraj
.env.local
datoteku s MongoDB connection stringom:
MONGODB_URI=mongodb+srv://filip:ezxMAOvcCtHk1Zsk@cluster0.9wkt8p3.mongodb.net/qrcodegen
- Pokreni development server:
npm run dev
- Otvori http://localhost:3000 u browseru
- Registracija: Korisnik unosi ime, email i lozinku
- Prijava: Korisnik se prijavljuje i vidi svoje kontrolno ploču
- Kreiranje QR kodova:
- Kliknite "Kreiraj novi QR kod"
- Unesite naslov (npr. "Moja web stranica")
- Unesite sadržaj (URL, tekst, vCard, WiFi podaci, itd.)
- Kliknite "Kreiraj QR kod"
- Pregled QR kodova: Svi kreirani QR kodovi prikazani su u grid formatu
- Preuzimanje: Kliknite "Preuzmi" na bilo kojem QR kodu da ga sačuvate
- Brisanje: Kliknite ikonu smeća da obrišete QR kod
https://www.example.com
mailto:email@example.com
tel:+385911234567
sms:+385911234567?body=Hello!
geo:45.815399,15.966568
WIFI:T:WPA;S:YourNetworkName;P:YourPassword;;
BEGIN:VCARD
VERSION:3.0
FN:Ime Prezime
TEL:+385911234567
EMAIL:email@example.com
END:VCARD
Registracija novog korisnika
{
"name": "Ime Prezime",
"email": "email@example.com",
"password": "lozinka123"
}
Prijava postojećeg korisnika
{
"email": "email@example.com",
"password": "lozinka123"
}
Kreiranje novog QR koda
{
"userId": "user_id_here",
"title": "Naslov QR koda",
"content": "Sadržaj koji će biti enkodiran u QR kod"
}
Brisanje QR koda
{
"userId": "user_id_here",
"qrCodeId": "qrcode_id_here"
}
qrcodegen/
├── app/
│ ├── api/
│ │ ├── register/route.ts # API za registraciju
│ │ ├── login/route.ts # API za prijavu
│ │ └── qrcode/route.ts # API za QR kodove (POST, DELETE)
│ ├── globals.css
│ ├── layout.tsx
│ └── page.tsx # Glavna stranica
├── lib/
│ └── mongodb.ts # MongoDB konekcija
├── models/
│ └── User.ts # Mongoose User model s QR kodovima
├── .env.local # Environment varijable
└── package.json
{
name: String,
email: String (unique),
password: String (hashed),
qrCodes: [
{
title: String,
content: String,
qrCodeImage: String (base64),
createdAt: Date
}
],
createdAt: Date
}
- ✅ Lozinke se hashiraju prije pohrane u bazu
- ✅ Validacija svih input polja
- ✅ Provjera duplikata email adresa
- ✅ Minimalna dužina lozinke (6 znakova)
- ✅ Environment varijable za osjetljive podatke
- ✅ High error correction level za QR kodove
# Development mode
npm run dev
# Build za produkciju
npm run build
# Pokreni production server
npm start
# Linting
npm run lint
- 🔒 Session management s JWT tokenima
- 📊 Analytics - praćenje skeniranja QR kodova
- 🎨 Prilagodba dizajna QR koda (boje, logo)
- 📁 Kategorije za organizaciju QR kodova
- 🔗 Kratki URL-ovi za QR kodove
- 📤 Dijeljenje QR kodova putem emaila/socijalnih mreža
- 📈 Statistika korištenja
MIT