Deneme amaçlı oluşturulmuş, bir forum sitesinin temel işlevlerini yerine getiren basit bir web sitesidir. Bu web sitesinde;
- Siteye giren herkes kullanıcıların oluşturduğu başlıkları görebilir.
- Siteye üye olan herkes kullanıcıların oluşturdukları başlıkları okuyabilir ve yorum yapabilir.
- Kullanıcılar kendi oluşturdukları başlıkları silebilir veya düzenleyebilir, yaptıkları yorumları ise silebilirler.
- Moderatör olmayı belirten isModerator flag'i etkinleştirilmiş olan kullanıcılar bütün yorumları ve başlıkları silebilir. Bütün başlıkları yoruma açabilir veya kapatabilir.
Bu web sitesi örneği Python 3.8.10 ve Flask 2.0.1 versiyonu kullanılarak deneme amaçlı oluşturulmuştur.
Flask 2.0 versiyonundan itibaren değişmiş olan yeni routing metodları kullanıldığından 2.0 öncesi versiyonlarda hata verecektir!
Uygulamanın HerokuApp üzerinde çalışan versiyonu için tıklayın!
Test Kullanıcısı E-mail: [email protected]
Test Kullanıcı Parolası: sanane06
Veritabanı SQLite veritabanı kullanılarak oluşturulmuştur. Tek bir database dosyası içinde oluşturulan Users, Messages ve Posts tabloları kullanılarak bir forum sitesindeki en temel işlemler yerine getirilmeye çalışılmıştır.
CREATE TABLE "User" (
"id" INTEGER NOT NULL UNIQUE,
"username" TEXT NOT NULL UNIQUE,
"email" TEXT NOT NULL UNIQUE,
"password" TEXT NOT NULL,
"isModerator" INTEGER NOT NULL,
PRIMARY KEY("id" AUTOINCREMENT)
);
User verirabanında password hash algoritması için NIST tarafından standart olarak kabul edilen pbkdf2 algoritması kullanılmıştır.
CREATE TABLE "Post" (
"id" INTEGER NOT NULL UNIQUE,
"ownerID" INTEGER NOT NULL,
"header" TEXT NOT NULL,
"body" TEXT NOT NULL,
"openComments" INTEGER NOT NULL,
"postDate" TEXT NOT NULL,
PRIMARY KEY("id" AUTOINCREMENT)
);
CREATE TABLE "Message" (
"id" INTEGER NOT NULL UNIQUE,
"ownerID" INTEGER NOT NULL,
"postID" INTEGER NOT NULL,
"message" TEXT NOT NULL,
"messageDate" TEXT NOT NULL,
PRIMARY KEY("id" AUTOINCREMENT)
);
a) HerokuApp Yükleme Adımları
-
Heroku'yu buradan indirerek bilgisayarınıza yükleyin.
-
Heroku Dashboard sayfanız üzerinden bir app oluşturun
-
Bu repoyu
git clone https://github.com/RegaipKURT/ForumWebsiteExample
komutu ile bilgisayarınıza alın. -
İndirilen klasör içine girerek önce heroku login komutunu çalıştırın ve tarayıcı üzerinden hesabınıza giriş yapın.
-
İndirilen kasör içindeki ".git" dosyasını silin ve ardından
git init
komutunu klasör içinde çalıştırın. -
Uygulamayı hesabınıza eklemek için
heroku git:remote -a "uygulama_adınız"
komutunda "uygulama_adınız" yerine oluşturduğunuz heroku uyugulamanızın adını yazın -
Daha sonra normal bir git reposuna ekleme yapar gibi şu üç komutu çalıştırın:
git add .
,git commit -m "yükleme mesajınız"
ve ardındangit push heroku master
Bu adımların ardından uygulamanız heroku üzerinde deploy edilecektir.
b) Sunucu veya Yerel Ağ Üzerinde Çalıştırma
pip install -r requirements.txt
komutuyla bağımlılıkları yükleyin- Bilgisayarınızda çalıştırmak için
python wsgi.py
komutunu çalıştırın. - Sunucular için gunicorn ile wsgi.py dosyasını çalıştırabilirsiniz. Linux için örnek:
gunicorn3 -w3 wsgi.py
Python virtual environment için Pipfile dosyaları eklenmiştir.
Uygulama deneme amaçlı yapılmış ve güvenlik bakış açısıyla test edilmemiştir. Bu yüzden heroku üzerinde çalışan sisteme kaydolurken lütfen başka sistemlerde kullandığınız kullanıcı adı ve parolası ile kayıt yapmayın.