Bu proje, kullanıcıların kaydolup giriş yapabildiği, profil bilgilerini yönetebildiği ve kişisel notlar oluşturabildiği Python tabanlı bir web uygulamasıdır. Tüm veriler Google Firebase üzerinde gerçek zamanlı olarak saklanmaktadır.
- Kullanıcı Kimlik Doğrulama (Authentication):
- Firebase Authentication servisi kullanılarak güvenli bir şekilde yeni kullanıcı kaydı oluşturulur.
- Kayıtlı kullanıcılar e-posta ve şifreleri ile sisteme giriş yapabilir.
- Profil Yönetimi:
- Her kullanıcının Firebase Realtime Database üzerinde kendine ait bir profili bulunur.
- Kullanıcılar
Ad Soyad
,Üniversite
veBölüm
gibi kişisel bilgilerini güncelleyebilir.
- Not Yönetimi (CRUD Operasyonları):
- Giriş yapmış kullanıcılar kendilerine özel notlar oluşturabilir (
Create
), okuyabilir (Read
), güncelleyebilir (Update
) ve silebilir (Delete
).
- Giriş yapmış kullanıcılar kendilerine özel notlar oluşturabilir (
- Backend: Python, Flask
- Veritabanı: Google Firebase (Authentication & Realtime Database)
- Kütüphaneler:
Flask
,pyrebase4
,firebase-admin
(Kurulum adımları önceki versiyon ile aynıdır ve geçerlidir.)
Bir kullanıcının kayıt olma sürecindeki veri akışı şu adımları izler:
- Kullanıcı Arayüzü (
signup.html
): Kullanıcı, kayıt formunausername
,mail
vepassword
bilgilerini girer ve formu gönderir. - Flask Rota (
app.py
->/signup
):POST
isteği bu rota tarafından yakalanır. Form verilerirequest.form
ile alınır. - Kimlik Doğrulama (
db.py
->Firebase.register
):app.py
, alınanmail
vepassword
iledb.py
içerisindekiregister
fonksiyonunu çağırır. Bu fonksiyon, Firebase Authentication servisine yeni bir kullanıcı oluşturma isteği gönderir. - Veritabanı Kaydı (
user.py
->User.save
): Kullanıcı Firebase'de oluşturulduktan sonra,app.py
yeni kullanıcının ID'sini alır ve bu ID ile birUser
nesnesi oluşturur.user.save()
metodu çağrılarak Realtime Database'de bu kullanıcı için boş bir profil oluşturulur. - Profil Güncelleme (
user.py
->User.update
): Son olarak, formdan gelenusername
bilgisi ileuser.update()
metodu çağrılır ve kullanıcının profili güncellenir. - Yönlendirme: İşlem tamamlandığında kullanıcı, kendi profil sayfasına (
userpage.html
) yönlendirilir.
GET /
: Ana sayfayı render eder.POST /login
:- Açıklama: Kullanıcı girişi yapar.
- Form Verileri:
mail
,password
POST /signup
:- Açıklama: Yeni kullanıcı kaydı oluşturur.
- Form Verileri:
mail
,password
,username
POST /information/<user_id>
:- Açıklama: Kullanıcı profil bilgilerini günceller.
- Form Verileri:
fullname
,university
,department
GET /userpage/<user_id>
: Kullanıcının profil sayfasını render eder.
- Not Arama: Kullanıcıların notları içinde anahtar kelime ile arama yapabilmesi.
- Şifre Sıfırlama: Kullanıcıların "şifremi unuttum" özelliği ile şifrelerini yenileyebilmesi.
- Not Kategorizasyonu: Notlara etiket veya kategori ekleyerek filtreleme yapma imkanı.
- Dosya Yükleme: Notlara resim veya doküman gibi dosyalar ekleyebilme.