Github gibi web tabanlı depolama servisleri üzerinde bulunan dosyaların ilişkisel olarak yönetilmesini sağlayan yönetim panelidir.
-
Kolay Kullanım Kullanmak için bir şeyler indirip yüklemeniz gerekmez, direk tarayıcı üzerinden çalışır.
-
Güvenli Tamamı tarayıcı üzerinde çalışır ve tüm iletişim sadece depolama servisi ile tarayıcınız arasındadır. Kodların tamamı açıktır.
-
İlişkisel Dosyaların içerisinde üst kısmında dosya ile ilgili bir takım özellikler yazılı olabilir. Sistem, tüm dosyaları tarayarak listeleme ekranında ortak özellikleri gösterir. Ekleme anında ise bu ortak özelliklerin belirtilmesini ister. Eğer bir dosyanın oluşması için başka dosyaların da oluşması, düzenlenmesi gerekiyorsa bunları toplu olarak gerçekleştirir.
-
Düzenleyici Dosya türüne bağlı olarak dosya içeriğini renklendirir ve hatalı yazımları belirtir.
-
Eş Zamanlı Çalışmaz Çoğu işlem birbirinden bağımsız çalışır. Örneğin ilk yüklenme esnasında bir dosya tarayıcı hafızasından okunurken başka bir dosya onu beklemeden depolama servisinden indirilmeye başlanabilir. Ya da siz değişiklikleri depolama servisine gönder dediğinizde bu işlem arka planda gerçekleşirken siz sistemi kullanmaya devam edebilirsiniz ve işlemin tamamlanmasını beklemezsiniz.
-
Anahtar oluşturma: https://github.com/settings/tokens Verilen bağlantıdan giriş için anahtar oluşturun. Anahtar oluştururken izinler kısmında sadece "public_repo" seçeneğini işaretleyin. Eğer test amaçlı kullanacaksanız hiçbir kutucuğu işaretlemeniz gerekmez.
-
Demo: https://bugra9.github.io/adminjs/ Verilen bağlantı ile karalama yaptığımız depoyu yönetebilirsiniz.
-
Kendi projende kullanma: Bu depoyu çatallayın ve
docs/index.html
ilepublic/index.html
dosyalarındawindow.repo=".."
kısmınıwindow.repo="kullanıcıAdı/depo/dal"
şeklinde kendinize göre düzenleyin. Depo ayarlarından "GitHub Pages" altındaki "Source" kısmını "master branch /docs folder" olarak seçin. Daha sonrahttps://kullanıcıAdı.github.io/adminjs/
bağlantısı ile dosyalarınızı yönetmeye başlayabilirsiniz.
Her ne kadar sistem yukarıdaki özellikleri karşılamayı amaçlasa da şu an en temel özellikleri geliştirilme aşamasında olduğu için amacından sapabilir. Bu sapmalar şunlardır;
- Sistem sadece Github ile çalışmak üzere ayarlıdır.
- Sistem sadece Jekyll statik site oluşturucusu ile çalışması için ayarlıdır.
- Sistem en hatasız şekilde SudoPortal veya çatalları ile çalışabilir. Diğer sistemlerde sorunlar çıkar.
Kararlı ve tertemiz bir sistem kullanmak istiyor ama bulut tabanlı ve ilişkisel olmasa da olur diyorsanız vakit kaybetmeden aşağıdaki projeye bakın derim. Hatta ne olursa olsun bakın, bir şey kaybetmezsiniz ve çok şey kazanırsınız. :) https://github.com/jekyll/jekyll-admin
- Giriş ekranı
- Verilerin Github üzerinden alınması
- Alınan verilerin analiz edilerek gerekli biçimlere dönüştürülmesi
- Belgelerin listelenmesi
- Dizinlerin ve dosyaların listelenmesi
- Belgelerin düzenlenmesi
- Giriş yapılarının tanımlanması
- Editörün yapılandırılması
- Hızlı Ekleme (Örneğin makale eklerken sayfa değişmeden yeni etiket eklenebilmesi)
- Belgenin kaydedilmesi
- Yeni belge oluşturma
- Dosya yükleme
- Eğer bir dizin altında ayar dosyası bulunuyorsa bunun okunup yorumlanması
- İlgili kayıtların Github'a gönderilmesi (commit)
- "Commit" kayıtlarının "Pull Request" ile gönderilmesi
- Dosyaların Github üzerinden alınma sırasında durum çubuğundaki değişimin daha kararlı hale getirilmesi
- Giriş yapılarının çoğaltılması
- Hızlandırma işlemleri
- Testlerin eklenmesi
- İstatistik sayfasının eklenmesi
- Github gibi diğer servislerin desteklenmesi
- Jekyll gibi diğer sistemlerin desteklenmesi
- SudoPortal gibi diğer sistemlerin desteklenmesi
Bu çalışma için aşağıdaki depolarda karalama çalışmaları yapılmıştır. Buradaki çalışmalar react üzerine sistemli bir şekilde giydirilerek bu proje ortaya çıkmıştır.
https://github.com/bugra9/adminJS-core
https://github.com/bugra9/JekyllAdminJS
- https://facebook.github.io/react/docs/
- http://redux.js.org/
- http://react.semantic-ui.com/introduction
- https://localforage.github.io/localForage/