Bu proje, Angular frontend ve Node.js backend kullanarak, OTP (One-Time Password) tabanlı bir kullanıcı doğrulama sistemi içermektedir. Sistemde, kayıt olma, giriş yapma, e-posta doğrulama, şifre sıfırlama gibi güvenlik süreçleri gerçekleştirilmiştir. Backend tarafında Express.js, e-posta gönderimi için Nodemailer kullanılmıştır. Frontend'de ise Lazy Loading, Interceptor ve Guards gibi Angular özellikleriyle kullanıcı yönlendirmeleri yapılmıştır.
- Angular (Frontend)
- Node.js (Backend)
- Express.js (API)
- Nodemailer (E-posta gönderimi)
- JSON Web Tokens (JWT) (Kimlik doğrulama)
- MongoDB (Veritabanı)
- Kayıt Olma (Register): Kullanıcıların kayıt olması için OTP doğrulaması kullanılır.
- Giriş Yapma (Login): JWT ile kimlik doğrulaması sağlanır.
- E-posta Doğrulama (Verify Email): Kullanıcılar, e-posta adreslerini doğrulamak için OTP alırlar.
- Şifre Sıfırlama (Reset Password): Şifre unutulduğunda OTP ile şifre sıfırlama işlemi gerçekleştirilir.
- Şifre Güncelleme (Change Password): Kullanıcılar hesapları üzerinden şifrelerini güncelleyebilirler.
- Çıkış Yapma (Logout): Kullanıcı token'ı iptal edilerek güvenli bir çıkış işlemi yapılır.
- Express.js Middleware: JWT ile kimlik doğrulama ve yetkilendirme süreçleri için middleware'ler kullanılmıştır.
- Helpers: OTP üretme ve e-posta şablonları gibi yardımcı fonksiyonlar yapılandırılmıştır.
- NodeMailer: Kullanıcılara OTP ve bilgilendirme e-postaları göndermek için Nodemailer kullanılmıştır. (google üzerinden uygulamanız için uygulama şifresi almanız gerekiyor.)
- Lazy Loading: Modüller, kullanıcı deneyimini optimize etmek amacıyla lazy loading ile yüklenmektedir.
- Token Interceptor: Backend ile yapılan API isteklerinde, JWT token'ının otomatik olarak eklenmesi için interceptor oluşturulmuştur.
- Error Interceptor: API hatalarını yakalayıp, kullanıcıya uygun mesajlar göstermeyi sağlayan error interceptor eklenmiştir.
- Guards: Giriş yapılmadan belirli sayfalara erişimi engelleyen Angular guards kullanılmıştır.
- Register Page: Kullanıcı kayıt formu ve Email ile doğrulama.
- Login Page: Kullanıcı giriş yaptıktan sonra OTP ile doğrulama.
- Home Page: Kullacı giriş yaptıktan sonra kullanıcı bilgilerini gösteren sayfa. (guard kontrolü gerçekleşiyor)
- Verify Email: Kullanıcı maile gönderilen doğrulama maili işin doğrulama sayfası.
- Forgot Password: Şifre sıfırlama için e-posta ile OTP gönderimi.
- Reset Password: Yeni şifre belirleme sayfası.
- Otp Modal: Otp işlemleri için hazırlanan bir otp modal component.
- Depoyu klonlayın:
git clone https://github.com/kullanici-adi/proje-adi.git
- Backend klasörüne gidin:
cd backend - Gerekli bağımlılıkları yükleyin:
npm install
- Ortam dosyasını (.env) ayarlayın ve gerekli veritabanı, SMTP bilgilerini girin.
- Sunucuyu başlatın:
npm start
- Frontend klasörüne gidin:
cd frontend - Gerekli bağımlılıkları yükleyin:
npm install
- Angular uygulamasını başlatın:
ng serve