Proyek ini berfokus pada pembuatan ulang Jellyfish Backend, komponen penting dari Aplikasi Perpesanan Jellyfish yang dirancang untuk platform Android dan iOS. Backend dikembangkan dengan cermat mengikuti prinsip desain berbasis domain dan arsitektur bersih. Komunikasi dalam sistem diatur menggunakan perpustakaan Meditr, menekankan pemisahan perintah-kueri (CQS) untuk meningkatkan kejelasan kode dan pemisahan masalah.
Meskipun penerapan saat ini beroperasi sebagai monolit, arsitekturnya secara inheren fleksibel. Ini dapat dengan cepat beradaptasi dengan paradigma layanan mikro dengan penggabungan alat seperti gateway API (misalnya, Ocelot, YARP), segregasi tanggung jawab permintaan-perintah (CQRS), dan proses sinkronisasi basis data latar belakang. Yang terakhir ini menggunakan penguncian optimis dengan pembuatan versi baris untuk memastikan konsistensi antara database baca dan tulis.
Untuk mengantisipasi peningkatan di masa depan, arsitektur membayangkan penerapan komunikasi asinkron melalui AMQP melalui RabbitMQ. Hal ini akan memberdayakan sistem untuk menangani kejadian melalui antrean secara efisien, sehingga meletakkan dasar bagi perilaku publikasi/berlangganan yang kuat.
Tumpukan Teknologi
Bagian belakang
Web-Frontend
Aplikasi Seluler
C#/NET 7
C#/NET 7
C#/NET 7
ASP BERSIH
Server Blazer
.NET MAUI
MySql 8.0.35
Komponen Pisau Cukur
SinyalR
Komponen UI Mudblazor (https://mudblazor.com/)
Buruh pelabuhan
Inti EF
Pengujian
Pendekatan Pengujian Unit:
Pengujian unit adalah praktik mendasar yang diterapkan dalam proyek ini untuk memverifikasi kebenaran dan fungsionalitas metode dan alur proses. Meskipun diakui bahwa tidak setiap metode diuji secara individual, pendekatan yang seimbang akan diterapkan. Prinsipnya adalah menghindari rekayasa berlebihan dan pengujian berlebihan, serta menemukan jalan tengah yang memastikan proses dan metode penting diuji secara menyeluruh.
Perilaku pengujian unit mematuhi metodologi arrange, act, assertion standar, yang merupakan pendekatan umum dan efektif dalam pengujian perangkat lunak. Metodologi ini memberikan kerangka terstruktur untuk menyiapkan kondisi pengujian, melaksanakan tindakan spesifik, dan memvalidasi hasil yang diharapkan.
Pengujian End-to-End dengan Tukang Pos:
Pengujian end-to-end dilakukan menggunakan Postman, memanfaatkan dokumentasi Swagger API yang dihasilkan dan diimpor. Tukang pos berfungsi sebagai alat yang ampuh untuk pengujian API komprehensif, memungkinkan verifikasi fungsionalitas seluruh sistem. Integrasi dokumentasi Swagger API meningkatkan efisiensi proses pengujian dengan menyediakan antarmuka yang jelas dan interaktif untuk menjelajahi dan memvalidasi titik akhir API.
Dokumentasi
Dokumentasi Ekstensif:
Proyek ini sangat menekankan pada dokumentasi yang komprehensif untuk memfasilitasi kemudahan penggunaan dan pemahaman bagi semua pemangku kepentingan. Saat ini, dokumentasinya meliputi:
Dokumentasi Entity-Relationship Diagram (EER):
Dokumentasi EER yang terperinci telah disiapkan untuk memberikan wawasan tentang model data dan hubungan dalam sistem. Dokumentasi ini berfungsi sebagai sumber berharga bagi pengembang, membantu pemahaman yang jelas tentang struktur database yang mendasarinya.
Dokumentasi Kesombongan:
Proyek ini memanfaatkan Dokumentasi Swagger untuk memastikan dokumentasi API yang terperinci dan interaktif. Swagger menyediakan antarmuka yang intuitif dan ramah pengguna untuk menjelajahi dan memahami titik akhir, parameter, dan respons API yang tersedia. Dokumentasi ini penting bagi pengembang, memungkinkan integrasi dan interaksi yang lancar dengan API yang disediakan.
Penyebaran
Warisan melalui biner atau dengan wadah buruh pelabuhan.
Motivasi dan Tujuan Proyek
Menguji NET MAUI di Berbagai Platform Seluler:
Motivasi utama di balik dimulainya proyek ini adalah untuk menguji NET MAUI secara ketat di berbagai platform seluler. Hal ini melibatkan pengujian dan optimalisasi yang komprehensif untuk memastikan kinerja dan kompatibilitas yang lancar di seluruh platform tertentu, sehingga memberikan kontribusi wawasan berharga bagi komunitas NET MAUI.
Memberdayakan Pengguna untuk Menghosting Infrastruktur Perpesanan Mereka Sendiri:
Salah satu tujuan utama proyek ini adalah untuk memberdayakan pengguna dengan memberikan mereka kesempatan untuk menghosting infrastruktur perpesanan mereka secara mandiri. Hal ini bertujuan untuk mendemokratisasi aksesibilitas layanan pesan, memungkinkan pengguna untuk mengendalikan lingkungan komunikasi mereka.
Pemanfaatan Sumber Daya Optimal:
Efek samping penting dari inisiatif ini adalah fokus pada pengaktifan hosting infrastruktur perpesanan dengan sumber daya perangkat keras minimal. Secara khusus, proyek ini menargetkan pemanfaatan yang efisien, memungkinkan pengguna menjalankan infrastruktur pada perangkat keras yang dapat diakses seperti Raspberry Pi. Penekanan pada efisiensi sumber daya ini sejalan dengan komitmen proyek terhadap aksesibilitas dan keberlanjutan.
Fitur Keamanan dan Masa Depan
Enkripsi End-to-End dan Perlindungan Privasi:
Memastikan keamanan data pengguna adalah hal yang terpenting. Langkah-langkah mendatang sebelum rilis versi produksi pertama akan mencakup penerapan enkripsi ujung ke ujung yang cermat. Ini akan memberikan lapisan perlindungan yang kuat untuk informasi sensitif pengguna. Selain itu, penerapan pola muatan yang dapat dilupakan akan semakin meningkatkan privasi dengan meminimalkan retensi data, selaras dengan praktik terbaik privasi.
Bot Dukungan AI:
Merangkul masa depan interaksi pengguna, terdapat rencana untuk mengintegrasikan bot pendukung kecerdasan buatan (AI) ke dalam sistem. Pertimbangan diberikan untuk memanfaatkan teknologi AI canggih seperti Google Llama atau ChatGPT. Bot yang digerakkan oleh AI ini akan meningkatkan keterlibatan pengguna, menyederhanakan proses dukungan, dan berkontribusi pada pengalaman pengguna yang cerdas dan responsif.
Infrastruktur Blockchain:
Menjelajahi teknologi mutakhir, terdapat visi ke depan untuk menyelidiki kelayakan hosting infrastruktur sistem di blockchain. Manfaat teknologi blockchain, termasuk peningkatan keamanan, desentralisasi, dan transparansi, akan dinilai. Pendekatan yang berpikiran maju ini bertujuan untuk memastikan sistem ini tahan terhadap masa depan dan menyelaraskannya dengan tren yang muncul dalam arsitektur yang aman dan terdesentralisasi.
Yang Harus Dilakukan
Bagian belakang:
Docker.compose untuk JellyfishBackend, PostgreSql
RateLimiter untuk tindakan tertentu
IModelBinder+IModelBinderProvider untuk HttpQuery dan HttpBody untuk menyelesaikan dan memvalidasi data yang ada di dalam 'ApiDataTransferObject'
CRUD + Filter Pencarian (Transisi dari permintaan http (json) ke model filter dto ke ekspresi linq ke sql)
Ekspresi Linq ke sql: ganti/buat operator di objek nilai dan model Domain dan terjemahkan ke ekspresi LINQ
Fungsi Cache (saat ini IMemoryCache)
Titik Akhir Penyetelan Ulang Kata Sandi: Aktifkan penyetelan ulang kata sandi melalui fitur "Edit Pengguna"; perubahan logika domain: UpdateUser, perintah updateuser+pembaruan handler.
Enkripsi kata sandi dalam database dengan metode enkripsi praktik terbaik
Auth/Otorisasi: Mencocokkan Data Jwt (Klaim dll) dengan database
Peristiwa pemicu jika klaim token tidak cocok dengan peran dari database atau jika lokasi IP (IP Geo untuk IPv4+v6 atau Agen-Pengguna berbeda dengan pembuatan token) sangat berbeda. Beri tahu pengguna melalui email.
Unggah File / Gambar Profil Pengguna / Lampiran dari Pesan atau Media Ubur-ubur / Strategi Penyimpanan: Hindari menyimpan dalam database karena alasan kinerja. Terapkan strategi caching, bangun cache selama permulaan backend. Lakukan pemeriksaan virus menggunakan konten dan layanan AI eksternal (Azure= link, AWS) untuk mendeteksi unggahan media kekerasan/pornografi.
Rantai Tanggung Jawab terhadap virus dan konten yang tidak dapat diterima/kekerasan (abstraksi diterapkan)
GDPR: Modul GDPR untuk membuat semua tindakan GDPR tersedia (pelaporan, penghapusan, dll.)
Implementasi Presentasi/Infrastruktur/Aplikasi Permintaan Obrolan/Pesan/Pertemanan Pengguna Entitas Domain: Gunakan SignalR untuk memberi tahu pengguna target, dll. -> Event Handler
Payload yang Terlupakan -> GDPR (Jerman: DSGVO).
Enkripsi ujung ke ujung untuk pengguna Jellyfish. Urutan: Pengguna yang akan berinteraksi satu sama lain akan berbagi Kunci Publik. Ketika sebuah pesan akan dibuat oleh Pengguna-A, pesan tersebut akan dienkripsi dengan kunci publik Pengguna-B. Pesan akan dikirim ke backend dan akan disimpan (dienkripsi) di database. Pengguna-B menerima pesan melalui signalr atau polling semua pesan yang tidak diakui dari backend (polling dengan menyambung kembali, ketika koneksi terputus misalnya koneksi ke sel radio terputus). Pengguna-B menerima pesan ke backend (penggaruk yang diterima akan ditampilkan di Aplikasi Pengguna-A). Pengguna-B mendekripsi pesan dengan kunci pribadi.
Hapus pesan yang berhasil terkirim ke target
Enkripsi SSL untuk Backend.
Dokumentasi Kesombongan
Tulis ulang beberapa pesan respons ASP.NET Core default dengan filter: misalnya, kesalahan HTTP 422 atau respons tidak sah -> tulis ulang ke respons kesalahan JSONAPI ----------> Presentation.Extension.JsonApiResultExtension.
FluentValidation: Siapkan Validator dengan penanganan respons untuk respons kesalahan JSONAPI karena kesalahan validasi. CommandHandlerValidators sudah diterapkan: ValidationPipelineBehavior; hanya aturan validasi yang memerlukan definisi dalam konstruktor setiap CommandValidation.
Implementasi Konteks Pembatas Obrolan:
POST: /api/v1/chat, Buat obrolan (hanya dengan teman, persyaratan Logika Domain menentukan aturan bahwa obrolan memerlukan setidaknya satu pesan agar ada)
Presentasi
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Infrastruktur
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Aplikasi
Perintah/Permintaan
Validasi (Validasi Lancar)
Penangan
Penanganan Acara
Domain (status penyelesaian dihapus karena aturan Bisnis Baru)
Pelaksanaan
Tes (Uji Unit)
DAPATKAN: /api/v1/chat/{chatId}, Dapatkan obrolan
Presentasi
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Infrastruktur
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Aplikasi
Perintah/Permintaan
Validasi (Validasi Lancar)
Penangan
Penanganan Acara
Domain
Pelaksanaan
Tes (Uji Unit)
PUT: /api/v1/chat/{chatId}, Perbarui informasi obrolan seperti deskripsi, nama
Presentasi
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Infrastruktur
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Aplikasi
Perintah/Permintaan
Validasi (Validasi Lancar)
Penangan
Penanganan Acara
Domain
Pelaksanaan
Tes (Uji Unit)
HAPUS: /api/v1/chat/{chatId}, Hapus obrolan
Presentasi
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Infrastruktur
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Aplikasi
Perintah/Permintaan
Validasi (Validasi Lancar)
Penangan
Penanganan Acara
Domain
Pelaksanaan
Tes (Uji Unit)
PUT: /api/v1/chat/{chatId}/picture/{messageId}, Mengatur gambar obrolan
Presentasi
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Infrastruktur
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Aplikasi
Perintah/Permintaan
Validasi (Validasi Lancar)
Penangan
Penanganan Acara
Domain
Pelaksanaan
Tes (Uji Unit)
PUT: /api/v1/chat/{chatId}/member/{userId}, Tambahkan pengguna ke obrolan (anggota baru)
Presentasi
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Infrastruktur
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Aplikasi
Perintah/Permintaan
Validasi (Validasi Lancar)
Penangan
Penanganan Acara
Domain
Pelaksanaan
Tes (Uji Unit)
HAPUS: /api/v1/chat/{chatId}/member/{userId}, Hapus anggota dari obrolan
Presentasi
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Infrastruktur
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Aplikasi
Perintah/Permintaan
Validasi (Validasi Lancar)
Penangan
Penanganan Acara
Domain
Pelaksanaan
Tes (Uji Unit)
PUT: /api/v1/chat/{chatId}/admin/{userId}, Tetapkan tindakan admin
Presentasi
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Infrastruktur
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Aplikasi
Perintah/Permintaan
Validasi (Validasi Lancar)
Penangan
Penanganan Acara
Domain
Pelaksanaan
Tes (Uji Unit)
HAPUS: /api/v1/chat/{chatId}/admin/{userId}, Cabut tindakan admin
Presentasi
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Infrastruktur
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Aplikasi
Perintah/Permintaan
Validasi (Validasi Lancar)
Penangan
Penanganan Acara
Domain
Pelaksanaan
Tes (Uji Unit)
POST: /api/v1/chat/{chatId}/message, Tindakan pembuatan pesan
Presentasi
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Infrastruktur
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Aplikasi
Perintah/Permintaan
Validasi (Validasi Lancar)
Penangan
Penanganan Acara
Domain
Pelaksanaan
Tes (Uji Unit)
PUT: /api/v1/chat/{chatId}/message/{messageId}, Tindakan pembaruan pesan
Presentasi
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Infrastruktur
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Aplikasi
Perintah/Permintaan
Validasi (Validasi Lancar)
Penangan
Penanganan Acara
Domain
Pelaksanaan
Tes (Uji Unit)
HAPUS: /api/v1/chat/{chatId}/message/{messageId}, Tindakan penghapusan pesan
Presentasi
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Infrastruktur
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Aplikasi
Perintah/Permintaan
Validasi (Validasi Lancar)
Penangan
Penanganan Acara
Domain
Pelaksanaan
Tes (Uji Unit)
Implementasi Konteks Batasan Pengguna:
POST: /api/v1/user/register, Daftarkan pengguna
Presentasi
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Infrastruktur
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Aplikasi
Perintah/Permintaan
Validasi (Validasi Lancar)
Penangan
Penanganan Acara
Domain
Pelaksanaan
Tes (Uji Unit)
POST: /api/v1/user/password/reset/request, Membuat permintaan pengaturan ulang kata sandi
Presentasi
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Infrastruktur
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Aplikasi
Perintah/Permintaan
Validasi (Validasi Lancar)
Penangan
Penanganan Acara
Domain
Pelaksanaan
Tes (Uji Unit)
POST: /api/v1/user/password/change/{id?}, Ubah titik akhir kata sandi untuk admin UI
Presentasi
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Infrastruktur
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Aplikasi
Perintah/Permintaan
Validasi (Validasi Lancar)
Penangan
Penanganan Acara
Domain
Pelaksanaan
Tes (Uji Unit)
POST: /api/v1/user/password/reset/{base64Token}, Reset kata sandi dengan url pengaturan ulang kata sandi yang diterima pengguna (tautan dari email)
Presentasi
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Infrastruktur
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Aplikasi
Perintah/Permintaan
Validasi (Validasi Lancar)
Penangan
Penanganan Acara
Domain
Pelaksanaan
Tes (Uji Unit)
POST: /api/v1/user/activation/{base64Token}, Aktifkan pengguna dengan mereka menerima url aktivasi (tautan dari email)
Presentasi
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Infrastruktur
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Aplikasi
Perintah/Permintaan
Validasi (Validasi Lancar)
Penangan
Penanganan Acara
Domain
Pelaksanaan
Tes (Uji Unit)
DAPATKAN: /api/v1/user/user-types, Dapatkan semua tipe pengguna yang tersedia
Presentasi
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Infrastruktur
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Aplikasi
Perintah/Permintaan
Validasi (Validasi Lancar)
Penangan
Penanganan Acara
Domain
Pelaksanaan
Tes (Uji Unit)
DAPATKAN: /api/v1/user/messenger/{guid}, Dapatkan profil messenger dari pengguna (informasi lebih sedikit dibandingkan profil pengguna default)
Presentasi
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Infrastruktur
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Aplikasi
Perintah/Permintaan
Validasi (Validasi Lancar)
Penangan
Penanganan Acara
Domain
Pelaksanaan
Tes (Uji Unit)
POST: /api/v1/user/friend/request, Buat permintaan pertemanan
PUT: /api/v1/user/{id}/profile-picture, Tambahkan gambar profil
Presentasi
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Infrastruktur
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Aplikasi
Perintah/Permintaan
Validasi (Validasi Lancar)
Penangan
Penanganan Acara
Domain
Pelaksanaan
Tes (Uji Unit)
HAPUS: /api/v1/user/{id}/profile-picture, Hapus gambar profil
Presentasi
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Infrastruktur
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Aplikasi
Perintah/Permintaan
Validasi (Validasi Lancar)
Penangan
Penanganan Acara
Domain
Pelaksanaan
Tes (Uji Unit)
PATCH: /api/v1/user/{id}/role, Tetapkan peran kepada pengguna
Presentasi
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Infrastruktur
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Aplikasi
Perintah/Permintaan
Validasi (Validasi Lancar)
Penangan
Penanganan Acara
Domain
Pelaksanaan
Tes (Uji Unit)
HAPUS: /api/v1/user/{id}/role, Cabut peran dari pengguna
Presentasi
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Infrastruktur
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Aplikasi
Perintah/Permintaan
Validasi (Validasi Lancar)
Penangan
Penanganan Acara
Domain
Pelaksanaan
Tes (Uji Unit)
POST: /api/v1/user/, Buat pengguna
Presentasi
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Infrastruktur
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Aplikasi
Perintah/Permintaan
Validasi (Validasi Lancar)
Penangan
Penanganan Acara
Domain
Pelaksanaan
Tes (Uji Unit)
DAPATKAN: /api/v1/user/{id}, Dapatkan pengguna
Presentasi
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Infrastruktur
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Aplikasi
Perintah/Permintaan
Validasi (Validasi Lancar)
Penangan
Penanganan Acara
Domain
Pelaksanaan
Tes (Uji Unit)
PUT: /api/v1/user/{id}, Perbarui pengguna
Presentasi
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Infrastruktur
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Aplikasi
Perintah/Permintaan
Validasi (Validasi Lancar)
Penangan
Penanganan Acara
Domain
Pelaksanaan
Tes (Uji Unit)
HAPUS: /api/v1/user/{id}, Hapus pengguna
Presentasi
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Infrastruktur
Pelaksanaan
Tes (Tes Kotak Abu-abu)
Aplikasi
Perintah/Permintaan
Validasi (Validasi Lancar)
Penangan
Penanganan Acara
Domain
Pelaksanaan
Tes (Uji Unit)
Frontend Web:
Periksa semua permintaan http ke backend dan tangkap semua status di atas semua kesalahan, jadi kode http 4xx dan 5xx
Ikon: Ikon MudBlazor.
Bilah Navigasi:
Fitur
Pribadi
Bagian Bantuan:
NavBar sebagai Sidebar dengan poin Bantuan
Tubuh dengan poin Pencarian Bantuan
Artikel Populer
Tab Bantuan Android dan iOS di bawah Poin Bantuan
Blog:
Informasi terbaru tentang Ubur-ubur
Unduh:
Tautan ke App store
Catatan kaki:
Ikon Ubur-ubur
Hak cipta
Ketentuan Penggunaan dan Kebijakan Privasi
Ikon Media Sosial dengan Saluran
Fitur (dari Web-Frontend):
Snackbar untuk notifikasi (tindakan apa pun seperti mengedit pengguna, mendapatkan notifikasi layanan x/y, dll.) => https://mudblazor.com/components/snackbar#5ac08464-80c3-4c34-8cac-24f0947275e7
Halaman Masuk dengan fungsi pemulihan kata sandi
kesan
GDPR:
Penafian Cookie
Dasbor.pisau cukur:
Grafik:
Surat keluar
Pengguna terdaftar dibandingkan bulan sebelumnya
Latar belakang bagan agak abu-abu
_Host.cshtml: Pesan Default berubah
Aplikasi.pisau cukur:
Halaman HalamanTidak Ditemukan
Signup.razor (Masuk + Daftar):
Susunan komponen
Halaman sukses setelah pendaftaran
Pengguna.pisau cukur:
CRUD+Search (Pencarian mungkin dengan pencarian elastis)
Tindakan Reset Kata Sandi secara terpisah
Lihat Gambar Profil Pengguna (Gambar MudBlazor)
Unggah Gambar Profil Pengguna (Unggah File MudBlazor)
Edit/Hapus Log Audit Pengguna (semua peristiwa dalam tabel terpisah)
Lihat permintaan teman/pertemanan pengguna yang keluar
Kesehatan.pisau cukur:
Mempercantik tampilan pemeriksaan kesehatan (saat ini tampilan pemeriksaan kesehatan default sebagai presentasi)
Blog:
Postingan KRUD
Media Tertanam
Blog: Muat Postingan secara vertikal dengan Progressbar vertikal MudBlazor (animasi)
Blog: Postingan dilihat dengan Timeline dengan urutan kiri dan kanan
Otentikasi: Timer di Latar Belakang yang akan terlihat di UI ketika token hanya valid 5 menit lagi, maka pelacakan aktivasi akan dimulai. Saat pengguna memicu tindakan di UI, token akan disegarkan di backend secara otomatis.
Penyimpanan sesi: Menyimpan URL yang terakhir dikunjungi
Profil sendiri
Melihat
Edit/Kelola
Aplikasi Seluler:
Hapus struktur DTO dan Model lama serta namespace lama
Tulis ulang ke struktur baru
Cache pesan/pengguna di SQLite, beradaptasi dengan struktur baru
Tambahkan WebApiClient dan SignalRClient baru (klien WebAPI dari WebFrontend menjadi bersama, klien SignalR baru (klien yang diketik) menjadi bersama agar dapat digunakan kembali)
Tulis ulang URL titik akhir target ke backend ke struktur backend baru
Obrolan: Perpesanan (UI+Aplikasi backend)
Obrolan+Daftar Teman: Lihat profil
Obrolan: Pesan (kirim lampiran)
Karakteristik mandiri yang berlawanan dengan WhatsApp dll.:
Tandai pesan sebagai tidak dapat diambil tangkapan layarnya: Pesan-pesan ini dikaburkan oleh pembuatan Tangkapan Layar. Sama dengan gambar profil.
Kalender grup: Merencanakan aktivitas pribadi bersama dalam kalender Obrolan Grup.
Peduli tentang berbagi: Tandai pesan sebagai tidak dapat dibagikan, agar tidak peduli jika tidak diizinkan berbagi :)
Kemampuan untuk menghosting infrastruktur perpesanan Anda sendiri. Tidak ada ketergantungan pada orang lain!
Melawan kekerasan: Saat ini obrolan pribadi seperti Telegramm disalahgunakan oleh orang-orang untuk tujuan kekerasan dan konten dewasa. Jadi ubur-ubur membawa kemampuan untuk menghindari pembagian konten semacam itu. Algoritme Pembelajaran Mesin mengevaluasi Media yang akan dibagikan melalui messenger. Ketika konten kekerasan dikenali, pesan yang dikirim akan dihindari. ** Memerlukan Azure AI Vision atau Algoritma ML serupa **
Berbagi lokasi dengan trek langsung: tidak perlu jika dalam grup atau obrolan pribadi, gerakan Anda akan dialirkan langsung ke anggota obrolan saat Mode penonton aktif (hanya tersedia di peta trek langsung).
Oblivion: Hak untuk melupakan adalah landasan GDPR saat ini. Dengan menghapus Akun, seluruh data (juga pesan chat yang dibagikan kepada teman) akan terhapus. Tentu saja media juga. Saya sadar bahwa penghapusan Media yang dikirimkan ke anggota obrolan bukanlah praktik saat ini tetapi setiap manusia berhak agar data yang dibuatnya dapat dilupakan.
Jajak Pendapat/Suara: Contoh pada WhatsApp: Suara juga akan tersedia di ubur-ubur.
Umum:
DNS Preconf, file host Windows dengan nama yang sama seperti Docker
Definisi lisensi
Ketentuan penggunaan
Sumbangan
Manual untuk instalasi dan eksekusi
Pantau terus .
Panel Admin Alfa 0.1
Dasbor
Manajemen Pengguna (Users.razor) dengan Pagination dan Pencarian
Manajemen Pengguna (Users.razor) - Tambah/Edit
Manajemen Pengguna (Users.razor) - Hapus
VIDEO: Pratinjau Filter Transisi dari Permintaan Http ke Ekspresi Linq dan terakhir ke Kueri MySql melalui ORM (secara dinamis) / THUMBNAIL PNG DI BAWAH (HREF)
Diagram Relasi Entitas yang Ditingkatkan
Analisis kodemetrik setelah menambahkan MobileApp ke solusi
Alur kerja Integrasi Berkelanjutan dengan Github Action