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.
- 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
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": "[email protected]",
"phone": "+905001234567",
"password": "7BJXH6HjE8",
}
src -> util -> config.js Dosyası içerisinde bilgileri ( Aşağıda yer alan bilgiler ) kendinize göre değiştirin.
defaultLang: "tr",
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
},
src -> util -> config.js Doğrulama sistemileri ile ilgili ayarlarınızı yapabilirsiniz.
verification: {
"required": false,
"expiration_time": 900,
"phone": false,
"email": false
}
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
}
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"
}
src -> util -> config.js Dosyası içerisinde SMTP bilgilerini kendinize göre değiştirin.
nodemailer: {
"host": "mail.example.com",
"port": 587,
"user": "[email protected]",
"password": "MAİL ŞİFRESİ",
"rejectUnauthorized": false,
"logo": "uploads/mail_logo.png"
}
- @hapi/joi
- axios
- bcrypt
- body-parser
- cors
- express
- joi-objectid
- jsonwebtoken
- lodash
- mongoose
- nodemailer
- crypto-js
├── 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