Skip to content

bayramasli/app_note

Repository files navigation

📱 Note App - Not Alma Uygulaması

Basit ve kullanışlı not alma uygulaması
Flutter ile yapılmış, 5 farklı tema ve Türkçe/İngilizce dil desteği olan mobil uygulama

🌟 Proje Nedir?

Bu proje, Flutter kullanılarak yapılmış bir not alma uygulamasıdır. Kullanıcılar not yazabilir, ses kaydı yapabilir, çizim ekleyebilir ve fotoğraf ekleyebilir.

🎯 Ne Yapabilir?

  • Not Yazma - Metin notları oluşturma
  • Ses Kaydı - Sesli notlar kaydetme
  • Çizim - Parmakla çizim yapma
  • Fotoğraf - Resim ekleme
  • 5 Tema - Farklı renk seçenekleri
  • 2 Dil - Türkçe ve İngilizce

Özellikler

🎨 Tema Seçenekleri

Tema Açıklama
🌙 Neon Cyber Mavi neon renkler (Gece)
🌃 Klasik Gece Koyu mor tema (Gece)
❄️ Arctic Buzul Mavi tonlar (Gündüz)
Minimalist Gri Gri tonlar (Gündüz) - Varsayılan
🌿 Doğa Uyumu Yeşil tonlar (Gündüz)

Nasıl Çalışır:

  • Tema değişikliği anında olur
  • Gece temaları otomatik koyu mod yapar
  • Seçim cihazda kaydedilir

🌍 Dil Desteği

  • 🇹🇷 Türkçe - Varsayılan dil
  • 🇺🇸 İngilizce - İkinci dil

Nasıl Çalışır:

  • Dil değişikliği anında olur
  • Tüm yazılar seçilen dilde görünür
  • Seçim cihazda kaydedilir

📝 Not Özellikleri

  • ✏️ Metin - Yazı yazma
  • 🎤 Ses - Ses kaydı
  • 🎨 Çizim - Parmakla çizim
  • 📷 Fotoğraf - Resim ekleme
  • 📎 Dosya - Her türlü dosya
  • 📍 Konum - GPS ile yer ekleme
  • Liste - Madde işaretli listeler
  • 🔗 Bağlantı - Notları birbirine bağlama

🎯 Diğer Özellikler

  • Hatırlatıcı - Tarih ve saat hatırlatması
  • 📅 Takvim - Notları takvimde görme
  • 🗺️ Mind Map - Notları görsel olarak bağlama
  • 📊 Dışa Aktarma - PDF ve Excel olarak kaydetme
  • 🔍 Arama - Notlarda arama yapma
  • 🏷️ Kategori - Notları gruplandırma
  • 📌 Pinleme - Önemli notları üstte tutma

🏗️ Proje Yapısı

lib/
├── 📁 controllers/          # İş mantığı
│   ├── notes_controller.dart      # Not yönetimi
│   ├── auth_controller.dart       # Kimlik doğrulama
│   ├── calendar_controller.dart   # Takvim işlemleri
│   ├── friends_controller.dart    # Arkadaş yönetimi
│   └── settings_controller.dart   # Ayarlar yönetimi
│
├── 📁 models/               # Veri yapıları
│   ├── note_model.dart            # Not veri yapısı
│   ├── user_model.dart            # Kullanıcı veri yapısı
│   ├── calendar_event_model.dart  # Takvim olayları
│   ├── friend_model.dart          # Arkadaş veri yapısı
│   ├── linked_note_model.dart     # Bağlantılı notlar
│   ├── location_model.dart        # Konum bilgileri
│   ├── mindmap_model.dart         # Mind map verileri
│   ├── notification_model.dart    # Bildirim verileri
│   ├── reminder_model.dart        # Hatırlatıcı verileri
│   ├── saved_address_model.dart   # Kaydedilen adresler
│   └── note_permission_model.dart # Not izinleri
│
├── 📁 services/             # Servisler
│   ├── database/                  # Veritabanı işlemleri
│   │   └── database_service.dart  # Ana veritabanı servisi
│   ├── theme_service.dart         # Tema yönetimi
│   ├── language_service.dart      # Dil yönetimi
│   ├── audio_service.dart         # Ses işlemleri
│   ├── drawing_service.dart       # Çizim işlemleri
│   ├── export_service.dart        # Dışa aktarma
│   ├── file_service.dart          # Dosya işlemleri
│   ├── friend_sync_service.dart   # Arkadaş senkronizasyonu
│   ├── list_service.dart          # Liste işlemleri
│   ├── location_service.dart      # Konum işlemleri
│   ├── note_permission_service.dart # Not izinleri
│   ├── notification_service.dart  # Bildirim işlemleri
│   ├── saved_address_service.dart # Adres yönetimi
│   ├── share_service.dart         # Paylaşım işlemleri
│   └── translation_service.dart   # Çeviri işlemleri
│
├── 📁 views/                # Ekranlar
│   ├── auth/                      # Giriş/kayıt ekranları
│   │   ├── login_screen.dart      # Giriş ekranı
│   │   ├── register_screen.dart   # Kayıt ekranı
│   │   ├── auth_wrapper.dart      # Kimlik doğrulama sarmalayıcısı
│   │   └── forgot_password_screen.dart # Şifre sıfırlama
│   ├── notes/                     # Not ekranları
│   │   ├── note_screen.dart       # Ana not ekranı
│   │   ├── note_edit_screen.dart  # Not düzenleme
│   │   ├── note_detail_screen.dart # Not detayı
│   │   ├── note_card_widget.dart  # Not kartı
│   │   ├── note_list_widget.dart  # Not listesi
│   │   ├── note_grid_widget.dart  # Not grid görünümü
│   │   ├── note_search_widget.dart # Not arama
│   │   ├── note_filter_widget.dart # Not filtreleme
│   │   └── note_sort_widget.dart  # Not sıralama
│   ├── settings/                  # Ayarlar ekranları
│   │   ├── settings_screen.dart   # Ana ayarlar
│   │   ├── account_settings_screen.dart # Hesap ayarları
│   │   ├── theme_selector_screen.dart # Tema seçici
│   │   ├── language_selector_screen.dart # Dil seçici
│   │   ├── notification_settings_screen.dart # Bildirim ayarları
│   │   └── privacy_settings_screen.dart # Gizlilik ayarları
│   ├── calendar/                  # Takvim ekranı
│   │   └── calendar_screen.dart   # Ana takvim ekranı
│   ├── friends/                   # Arkadaş ekranları
│   │   ├── friends_screen.dart    # Arkadaş listesi
│   │   └── friend_profile_screen.dart # Arkadaş profili
│   ├── drawing/                   # Çizim ekranı
│   │   └── drawing_screen.dart    # Çizim yapma ekranı
│   ├── list/                      # Liste ekranı
│   │   └── list_editor_screen.dart # Liste düzenleme
│   ├── map/                       # Harita ekranı
│   │   └── map_screen.dart        # Konum haritası
│   ├── mindmap/                   # Mind map ekranı
│   │   └── mindmap_screen.dart    # Mind map görünümü
│   ├── linked_notes/              # Bağlantılı notlar
│   │   ├── linked_notes_screen.dart # Bağlantılı notlar listesi
│   │   ├── linked_notes_editor_screen.dart # Düzenleme
│   │   ├── mind_map_screen.dart   # Mind map ekranı
│   │   └── note_relationship_screen.dart # Not ilişkileri
│   ├── notification/              # Bildirim ekranları
│   │   ├── notifications_screen.dart # Bildirim listesi
│   │   └── notification_detail_screen.dart # Bildirim detayı
│   └── home/                      # Ana ekran
│       └── home_screen.dart       # Ana sayfa
│
├── 📁 widgets/               # Bileşenler
│   ├── note_card_widget.dart      # Not kartı
│   ├── custom_button.dart         # Özel buton
│   ├── custom_text_field.dart     # Özel metin alanı
│   ├── audio_player_widget.dart   # Ses oynatıcı
│   ├── audio_recorder_widget.dart # Ses kaydedici
│   ├── drawing_widget.dart        # Çizim widget'ı
│   ├── file_picker_widget.dart    # Dosya seçici
│   ├── image_viewer_widget.dart   # Resim görüntüleyici
│   ├── list_widget.dart           # Liste widget'ı
│   ├── empty_state_widget.dart    # Boş durum gösterici
│   ├── theme_toggle_widget.dart   # Tema değiştirici
│   ├── attachments_widget.dart    # Ek dosya gösterici
│   └── note_edit_widgets.dart     # Not düzenleme widget'ları
│
├── 📁 themes/                # Temalar
│   ├── theme_service.dart         # Tema servisi
│   ├── light_theme.dart           # Açık tema
│   ├── dark_theme.dart            # Koyu tema
│   └── themes.dart                # Tema yardımcıları
│
├── 📁 translations/          # Diller
│   └── app_translations.dart      # Çeviri dosyası
│
├── 📁 utils/                 # Yardımcılar
│   ├── constants.dart             # Sabitler
│   ├── ui_helpers.dart            # UI yardımcıları
│   ├── validators.dart            # Doğrulama fonksiyonları
│   └── extensions.dart            # Dart uzantıları
│
├── 📁 routes/                # Sayfa yönlendirmeleri
│   └── app_routes.dart            # Uygulama rotaları
│
└── 📄 main.dart              # Ana dosya

🗄️ Veritabanı Tabloları

Ana Tablolar:

Tablo Adı Açıklama Alan Sayısı
users Kullanıcı bilgileri 6 alan
notes Ana not verileri 20 alan
note_tags Not etiketleri 3 alan
saved_addresses Kaydedilen adresler 9 alan
note_permissions Not paylaşım izinleri 6 alan
notifications Bildirimler 7 alan
calendar_events Takvim olayları 12 alan
linked_notes Not bağlantıları 5 alan

Tablo Detayları:

1. users (Kullanıcılar)

- id (PRIMARY KEY)
- fullName (Ad Soyad)
- email (E-posta)
- password (Şifre - Hash'lenmiş)
- phone (Telefon)
- createdAt (Oluşturulma Tarihi)

2. notes (Notlar)

- id (PRIMARY KEY)
- userId (Kullanıcı ID - FOREIGN KEY)
- title (Başlık)
- content (İçerik)
- date (Tarih)
- category (Kategori)
- reminderDate (Hatırlatma Tarihi)
- location (Konum)
- imagePath (Resim Yolu)
- imageUrl (Resim URL)
- audioPath (Ses Yolu)
- drawingPath (Çizim Yolu)
- attachments (Ek Dosyalar)
- listData (Liste Verisi)
- mapData (Harita Verisi)
- type (Tür: personal/shared/team)
- isPinned (Pinlenmiş mi?)
- color (Renk)

3. note_tags (Not Etiketleri)

- id (PRIMARY KEY)
- noteId (Not ID - FOREIGN KEY)
- tag (Etiket Adı)

4. saved_addresses (Kaydedilen Adresler)

- id (PRIMARY KEY)
- title (Başlık)
- address (Adres)
- latitude (Enlem)
- longitude (Boylam)
- description (Açıklama)
- createdAt (Oluşturulma Tarihi)
- userId (Kullanıcı ID - FOREIGN KEY)

5. note_permissions (Not İzinleri)

- id (PRIMARY KEY)
- noteId (Not ID - FOREIGN KEY)
- userId (Kullanıcı ID - FOREIGN KEY)
- permission (İzin Türü: read/write/admin)
- grantedAt (Verilme Tarihi)
- expiresAt (Bitiş Tarihi)

6. notifications (Bildirimler)

- id (PRIMARY KEY)
- title (Başlık)
- content (İçerik)
- type (Tür: system/reminder/note)
- relatedNoteId (İlgili Not ID)
- createdAt (Oluşturulma Tarihi)
- isRead (Okundu mu?)
- userId (Kullanıcı ID - FOREIGN KEY)

7. calendar_events (Takvim Olayları)

- id (PRIMARY KEY)
- title (Başlık)
- description (Açıklama)
- startDateTime (Başlangıç Tarihi)
- endDateTime (Bitiş Tarihi)
- type (Tür: note/reminder/event)
- relatedNoteId (İlgili Not ID)
- recurrenceRule (Tekrarlama Kuralı)
- isAllDay (Tüm Gün mü?)
- color (Renk)
- userId (Kullanıcı ID - FOREIGN KEY)
- createdAt (Oluşturulma Tarihi)

8. linked_notes (Bağlantılı Notlar)

- id (PRIMARY KEY)
- sourceNoteId (Kaynak Not ID - FOREIGN KEY)
- targetNoteId (Hedef Not ID - FOREIGN KEY)
- relationshipType (İlişki Türü)
- createdAt (Oluşturulma Tarihi)

🔧 Teknik Bilgiler

GetX (State Management)

GetX, uygulamanın durumunu yöneten bir araçtır.

Ne İşe Yarar:

  • Uygulama verilerini tutar
  • Değişiklikleri otomatik günceller
  • Hızlı çalışır

SQLite (Veritabanı)

SQLite, verileri cihazda saklayan bir sistemdir.

Ne İşe Yarar:

  • Notları kaydeder
  • Kullanıcı bilgilerini tutar
  • Hızlı erişim sağlar

Material Design 3

Google'ın modern tasarım sistemidir.

Ne İşe Yarar:

  • Güzel görünüm sağlar
  • Kolay kullanım
  • Gece modu desteği

🚀 Nasıl Çalıştırılır?

Gereksinimler

  • Flutter 3.1.0+
  • Android Studio veya VS Code
  • Git

Adımlar

  1. Projeyi İndirin
git clone https://github.com/bayramasli/app_note.git
cd app_note
  1. Paketleri Yükleyin
flutter pub get
  1. Çalıştırın
flutter run

Desteklenen Platformlar

  • 📱 Android - Telefon ve tablet
  • 🍎 iOS - iPhone ve iPad
  • 🌐 Web - Tarayıcı
  • 💻 Desktop - Bilgisayar

📱 Nasıl Kullanılır?

🎨 Tema Değiştirme

  1. AyarlarTema Ayarları
  2. İstediğiniz temayı seçin
  3. Değişiklik hemen olur

🌍 Dil Değiştirme

  1. AyarlarDil Ayarları
  2. 🇹🇷 Türkçe veya 🇺🇸 İngilizce seçin
  3. Tüm yazılar değişir

📝 Not Oluşturma

  1. Ana ekranda "+" butonuna tıklayın
  2. Başlık ve içerik yazın
  3. Medya ekleyin (resim, ses, çizim)
  4. Kaydet butonuna tıklayın

🔍 Not Arama

  1. Üst arama çubuğuna yazın
  2. Gerçek zamanlı sonuçlar görünür
  3. Filtreleme seçenekleri kullanın

📊 Proje Bilgileri

Bilgi Değer
Toplam Dosya 100+ dosya
Kod Satırı 15,000+ satır
Paket Sayısı 25+ paket
Tema Sayısı 5 tema
Dil Sayısı 2 dil
Platform 4 platform

📄 Lisans

Bu proje MIT lisansı altındadır.

MIT Lisansı Ne Demek:

  • Özgür Kullanım - İstediğiniz gibi kullanabilirsiniz
  • Değiştirme - Kodu değiştirebilirsiniz
  • Paylaşım - Başkalarıyla paylaşabilirsiniz

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published