Bu proje, NestJS ve NextJS kullanılarak geliştirilmiş bir kişisel blog sistemidir. Backend için NestJS, Frontend için ise NextJS kullanılmıştır. Genel olarak basit bir şekilde tasarlanmış olup geliştirilmeye müsait ve açık bir projedir.
Bu bölümde projeyi lokal geliştirme ortamınızda nasıl çalıştıracağınız anlatılmaktadır.
Projeyi çalıştırmadan önce, sisteminizde aşağıdaki yazılımların kurulu olduğundan emin olun:
- Node.js (v21 veya daha yüksek)
- npm veya yarn
- MongoDB (önerilen 7.0)
- Repo'yu klonlayın:
git clone https://github.com/atakanuludag/personal-blog-app
- Api için api klasörü içerisine .env dosyası oluşturun (veya env.example dosyasını kullanabilirsiniz):
MONGODB_URI="mongodb://database:27017"
MONGODB_DB_NAME="personal-blog"
MONGODB_DB_USER="example_user"
MONGODB_DB_PASS="example_password"
UPLOAD_FOLDER_PATH="./uploads"
API_PREFIX=/
SWAGGER_URL=swagger
SWAGGER_USERNAME=admin
SWAGGER_PASSWORD=123456
API_PORT="4000"
JWT_SECRET_KEY="123456"
JWT_EXPIRES_IN="365 days"
- NextJS tarafı için app klasörü içerisine .env dosyası oluşturun (veya env.example dosyasını kullanabilirsiniz):
NEXT_PUBLIC_APP_URL=http://localhost:4001
NEXT_PUBLIC_VERSION=$npm_package_version
HOSTNAME=0.0.0.0
PORT=4001
NEXT_PUBLIC_API_URL=http://localhost:4000/api
NEXT_PUBLIC_REVALIDATE_SECRET=123456
NEXT_PUBLIC_UPLOAD_PATH_URL=http://localhost:4001/uploads
NEXT_PUBLIC_GA_ID="G-XYZ"
NEXT_PUBLIC_SITE_TITLE="Atakan Uludağ"
NEXT_PUBLIC_SITE_DESCRIPTION="Atakan Uludağ"
NEXT_PUBLIC_PERSONAL_DESCRIPTION="Description"
NEXT_PUBLIC_PERSONAL_TWITTER_URL="https://twitter.com/atknuludag"
NEXT_PUBLIC_PERSONAL_INSTAGRAM_URL="https://www.instagram.com/atknuludag"
NEXT_PUBLIC_PERSONAL_GITHUB_URL="https://github.com/atakanuludag"
NEXT_PUBLIC_PERSONAL_LINKEDIN_URL="https://www.linkedin.com/in/atknuludag"
NEXT_PUBLIC_PERSONAL_EMAIL="[email protected]"
NEXT_PUBLIC_PAGE_SIZE=25
# MongoDB pages table Object ids;
NEXT_PUBLIC_NAVBAR_PAGE_IDS="id1,id2"
NEXT_PUBLIC_REVALIDATE_HOURS=24
-
Projeyi çalıştırma:
- Developer modu:
cd personal-blog-app/api npm run start:dev cd personal-blog-app/app npm run dev
- Build modu:
cd personal-blog-app/api npm run build npm run start cd personal-blog-app/app npm run build npm run start
-
Yönetici hesabı oluşturma: POST /user/register endpointine istek atarak admin hesabı oluşturabilirsiniz. Admin hesabını oluşturduktan sonra "/api/src/user/user.controller.ts" dosyasında bulunan "Disable here after initial installation;" bölümündeki kodları devre dışı bırakmanız önerilir. Bu fonksiyon tek kullanımlık olarak kurgulanmıştır.
Katkıda bulunmak isteyenler için yönergeler:
- Forklayın.
- Özellik dalınızı oluşturun (
git checkout -b feature/fooBar
). - Değişikliklerinizi commit edin (
git commit -am 'Feature: Add some fooBar'
). - Dalınızı push edin (
git push origin feature/fooBar
). - Yeni bir Pull Request oluşturun.