/nodejs-restful-api-new-project-starter

Designed for NodeJS based RESTful API development

Primary LanguageJavaScript

NodeJS RESTful API New Project Starter

git clone https://github.com/savasdersimcelik/nodejs-restful-api-new-project-starter.git

Yeni bir NodeJS RESTful API projesi oluşturmak için geliştirilmiştir.

Hedeflenenler

  • Kullanıcı kayıt sistemi
    • Eposta kullanılıyor mu diye kontrol ediliyor.
    • Telefon numarası kullanılıyor mu diye kontrol ediliyor.
    • Zorunlu alanların config dosyasından yönetilebilir hale getirildi
  • Kayıt sonrası doğrulama kodunu SMS olarak gönderme
    • Eposta, Telefon veya Her ikisi aynı anda gönderilebilir. ( Config dosyasından ayarlanabilir. )
    • Kodların son kullanma tarihleri sisteme ekleniyor. ( Son kullanım süresi Config dosyasından ayarlanabilir )
  • NetGSM SMS şirketi entegrasyonu. ( SMS Gönderimi için )
    • Kullanıcıya gönderilen smslerin veritabanda saklanması.
  • NodeMailler entegrasyonu. ( Mail Gönderimi için)
  • Doğrulama kodunu tekrar gönder sistemi
  • Hesap doğrulama sistemi. ( Zorunluluk Config dosyasından ayarlanabilir. )
    • Eposta adresi doğrulama ( Zorunluluk Config dosyasından ayarlanabilir. )
    • Telefon numarası doğrulama ( Zorunluluk Config dosyasından ayarlanabilir. )
    • Her ikiside zorunlu ilse biri tamamlandıktan sonra diğerine ait kodun gönderilmesi.
  • Şifremi unuttum sistemi
    • Şifre sıfırlama işlemi eposta veya telefon numarası kullanılabilir ( Config dosyasından ayarlanabilir. )
    • Doğrulama kodunun gönderilmesi
    • Şifre sıfırlamak için özel anahtarın oluşturulması
    • Şifre sıfırlamak için doğrulama sistemi
    • Doğrulama sonrası şifre sıfırlama için son kullanım tarihi ile özel anahtarın oluşturulması.
    • Yeni şifre belirlenmesi ve özel anahtarın geçerlilik süresinin kontrolü
    • Yeni şifre eski şifre ile aynı olabilir mi kontrol edilmesi. ( Config dosyasından ayarlanabilir. )
  • Kullanıcı giriş sistemi ( Telefon veya Eposta Adresi )
    • Süreli veya Süresiz Bearer token oluşturulması. ( Config dosyasından ayarlanabilir. )
    • Doğrulama zorunlu ise kontrol sağlanıp kodun gönderilmesi ve yönlendirme
  • Giriş yapan kullanıcının FCM ID değerini güncelleme.
  • Kullanıcıya Google Firebase FCM üzerinden bildirim gönderme.
  • Kullanıcıya Özel SMS göndermebilme.
  • Kullanıcı profil bilgilerini düzenleme.
  • Çoklu Dil Sistemi
    • Başarılı response mesajları dil sisteminden getirilebiliyor
    • Hata response mesajları dil sisteminden getirilebiliyor
  • Ülkeler
    • Yeni Ülke ekleme
    • Ülkeleri listeleme
    • Ülke detaylarını getirme
  • Şehirler
    • Yeni Şehir ekleme
    • Şehirleri listeleme
    • Şehir detaylarını getirme
  • İlçeler
    • Yeni İlçe ekleme
    • İlçeleri listeleme
    • İlçe detaylarını getirme

Ayarlar

Root Admin Bilgileri

src -> util -> config.js Dosyası içerisinde bilgileri ( Aşağıda yer alan bilgiler ) kendinize göre değiştirin.

initialAdminAccount: {
    "first_name": "Savaş Dersim",
    "last_name": "Çelik",
    "name": "Savaş Dersim Çelik",
    "email": "admin@example.com",
    "phone": "+905001234567",
    "password": "7BJXH6HjE8",
}

Varsayılan Dil Ayarı

src -> util -> config.js Dosyası içerisinde bilgileri ( Aşağıda yer alan bilgiler ) kendinize göre değiştirin.

     defaultLang: "tr",

User Kayıt Zorunlu Alanlar

src -> util -> config.js Dosyası içerisinde bilgileri ( Aşağıda yer alan bilgiler ) kendinize göre değiştirin.

    required: {
        "phone": true,
        "email": false
    },

Doğrulama Sistemleri

src -> util -> config.js Doğrulama sistemileri ile ilgili ayarlarınızı yapabilirsiniz.

verification: {
    "required": false,
    "expiration_time": 900,
    "phone": false,
    "email": false
}

Şifre Sıfırlama

src -> util -> config.js Şifre sıfırlama işlemleri ile ilgili ayarlarınızı yapabilirsiniz.

forgot: {
    "old_password": false,
    "expiration_time": 300,
    "phone": false,
    "email": false
}

NetGSM Bilgileri

src -> util -> config.js Dosyası içerisinde netgsm bilgilerini kendinize göre değiştirin.

netgsm: {
    "sender": "GÖNDERİCİ ADI",
    "usercode": "USER CODE",
    "password": "NETGSM ŞİFRE"
}

SMTP Bilgileri

src -> util -> config.js Dosyası içerisinde SMTP bilgilerini kendinize göre değiştirin.

nodemailer: {
    "host": "mail.example.com",
    "port": 587,
    "user": "info@example.com",
    "password": "MAİL ŞİFRESİ",
    "rejectUnauthorized": false,      
    "logo": "uploads/mail_logo.png"
}

Routerlar

Kütüphaneler

Klasör Yapısı

├── src
    ├── helper                      # Yardımcı fonksiyonların yer aldığı klasör
    ├── middlewares                 # Arakatman fonksiyonların yer aldığı klasör
    ├── models                      # Veritabanı şemalarının yer aldığı klasör
    ├── routes                      # API Sorgularının işlendiği klasör
    ├── util                        # Diğer fonksiyonların yer aldığı klasör
    └── app.js
└── index.js