Komponent takibi için yeni program çalışması

TA3UIS

Doğan
Katılım
15 Kasım 2023
Mesajlar
2,464
Biliyorum bir konu var ama, yeni bir konudan devam etmek istedim.
Elimdeki komponentlerin sayısı arttıkça raflara bakacağıma programdan kontrol ederim diye düşündüm ve yeni projemin komponent ekleme kısmını bu şekilde yaptım.

1735900875008.png

Veritabanına eklenince:
1735901149558.png


Komponent ekleme kısmı bitti sayılır ufak tefek makyajlar kaldı. Bu haliyle MySQL veritabanına, veritabanından çekilen bu bilgileri ekliyor.

Aşağıdaki kısımları kendimiz girmek zorundayız doğal olarak.
  • Komponent Adı
  • Ek Bilgi
  • Görsel
  • Adet

Projemde kullandığım yazılım teknolojileri.
PHP + Ajax + JSON + MySQL + Bootstrap 5.3. + DataTables

Form Ajax ile gönderilip yukarıdaki gibi JSON ile cevap alınıyor. Form doğrulaması da yaptım.
Komponent ekleme kısmının küçük eksiklikleri ve makyajları kaldı.
Bu haliyle tüm bilgiler veritabanına kaydediliyor.
Görsel için dosya taşıma kısmını yapacağım, isim olarak veritabanına kaydediliyor.


Tamamlanması gereken diğer bölümler.
  • Lokasyon Ekleme
  • Üretici Ekleme
  • Paket Ekleme
  • Tedarikçi Ekleme
  • Kategori Ekleme
  • Komponentleri listeleme

Aklıma gelenler şimdilik bu şekilde.

Proje tamamen olmasa da, kullanılabilir olduğunda herkesin faydalanabilmesi adına paylaşırım :tamam2:
 
Son düzenleme:
Komponent listeleme sayfasını yapmaya başlayacağım.
Bir satıra tıklandığında o komponente ait detaylı bir sayfa açılacak.

1735904504714.png
1735904533604.png
1735904589333.png


1735905063394.png
1735905101476.png
1735905143749.png
 
Son düzenleme:
En önemlisi, veritabanı nereden gelecek?
Yoksa beğendiğimiz komponentleri kendimiz mi kaydedeceğiz?

Bu uygulama, stoğumuzdakileri takip etmek için kullanılacak özel bir amaçla kullanılacaksa, tabi ki elle girilebilir.
 
Bence komponent giriş ekranının en kritik özelliği, çok hızlı veri girebilmek. Form alanlarının hepsi, bir önce girilen veri ile gelmeli ve sadece bir alan değiştirip ENTER'e basabilmeliyiz. Sadece model numarası zorunlu olmalı, diğer herşey opsiyonel olmalı. Mesela diyelim elindeki dirençleri gireceksin veri tabanına. Model adı "Jenerik direnç" olacak, model değerini de 1 Ω dan başlayarak 10 MΩ a kadar değiştirip ENTER'a basa basa bütün dirençleri girebilmeliyiz. Sonradan ayrıntıları (adet, paket, üretici, tedarikçi vs) tamamlayabiliriz. Ama bunları girmeden elimizdeki dirençlerin listesini hızlıca girebilmeliyiz. Her türlü ilave bürokrası, programın kullanımını caydırır.
 
Önce kabaca bir bitireyim sonra üzerinde oynama yaparız, "kabasını alalım" tabiri caizse :)
 
Aslında burada şöyle bir durum da aklıma geliyor: Komponent kategorisine bağlı olarak, hangi alanların gerekli olduğu, hangilerinin opsiyonel olduğu değişebilecek. Mesela zener diyot, direnç, ve kondansatör için, model adı ve değeri gereklidir. Ama transistör için sadece model adı gereklidir.

Bunu veritabanı içinde öyle bir tanımlamak istiyorum ki, kesinlikle kod içerisinde ayrı ayrı tanımlamadan, tamamen veritabanı içerisinde çözmek istiyorum diyelim. Yani "kategori" tablosunun tanımında bir liste olacak, bu liste de "komponent" tablusunda gerekli olan alanları tanımlayacak. Ama bu tanımlamayı yaparken kod duplikasyonu istemiyoruz. Hani mesela komponent tablosunda "ad" ve "değer" alt alanları var. Kategori tablosuna "ad" ve "değer" stringleri koyup buradan alt alanı bulmayacağız. DOĞRUTAN komponent tablosunun alt alanının REFERANSI olacak elimizde, ve bu referans ile doğrudan değiştireceğiz. C deki pointer gibi. Böyle birşey nasıl yapılır?
 
Yani kategori tablosu şöyle:

Kod:
Kategori
    ad (string)
    gerekliler (bir çeşit liste)

Komponent
    kategori
    ad (string)
    değer (string)
    adet (integer)

"gerekliler" listesine doğrudan "ad" "değer" ve "adet" alanlarına erişim sağlayabilecek birşey koyacağız. Başka bir aracı olmadan, o konacak şey üzerinden "ad", "değer" ve "adet" alanlarını değiştirebileceğiz. Böylece sıfır kod duplikasyonu olacak. Yeni kategori eklenince bir kere gerekliler tanımlanacak, yeni kod sürümü gerekmeyecek.
 
Ben önce bu projeyi kabaca bitirip daha sonra varsa üzerinde gerekli değişiklikleri iyileştirmeleri yapmayı düşünüyorum, yoksa başka türlü bitmeyecek :katil2:
 
Şahsi görüşüm
Kaba cihazlar veya malzemeler olsa bu tür yazılımlar stok tutma yönünden faydalı,

Ancak;
3 diyot almışsın 5 direnç ekleyeceksin .
Bu işler el tutar vakit kaybı olur.
Unutulan olur, kesin rakam tam çıkmaz...
Belki mcu , mosfet veya igbt için geçerli olabilir.
Yine de gereksizdir derim ..bilgisayara giriş yap, çıkış yap.
Zahmetli...
Uygulama yapacak olanlara kolay gelsin....
 
Eğer elinde hangi komponentlerin olduğunu tamamen ezberden biliyorsan, veya kısa sürede elinde komponentlerin tamamını tarayabiliyorsan, tabiki komponent takip programına ihtiyacın olmaz. Bendeki komponent sayısı artık o kadar fazla ki, lazım olan bir komponent elimde var mı yok mu her zaman bilemiyorum. Geçen current sense entegresi ile deney yapmak için elimde yok zannettim, iki tane aldım. Ama sonradan çekmecelere bakarken aldığım komponentten daha iyisinin zaten elimde olduğunu gördüm. Boşuna masraf yapmış oldum.
 
Veritabanıntaki ilgili tablolardaki sütunlardaki girdilerin birleşimlerini gerçekleştirdim.
Komponent listeleme sayfası bitti gibi, listeleri başarıyla çektim.


1735915721022.png

1735915756473.png


1735915853850.png
 
Son düzenleme:
Her bir kalem için stoğa giriş tarihi, maliyeti, ve stok kritik seviyesi de eklenebilir.
 
1735926225669.png


Hocam sanki biraz front-end ve backend güncellemesi ihtiyacı var gibi. Çok üşenip yaptığım projeyide eklemek isterim. Kaynak dosyası verebilirseniz incelemek çok isterim.
 
Biraz vakit bulunca geliştirmeye devam ediyorum, aradan uzun yıllar geçtiği için çoğu şeyi unutsam da bir şeyler çıkıyor yine ortaya galiba :)

Ajax ile aşağıdaki form yollandığında, aşağıda seçili gelen form alanlarının otomatik tekrar seçilmesi yeterli galiba.
Komponent kaydetme kısmı bitti sayılır.

Aşağıdaki alanları zorunlu olmaktan çıkarmayı düşünüyorum.
  • Ek Bilgi
  • Dosya


1736022644543.png
 
Komponent ekleme kısmı bitti sayılır.

Ekleme bölümü olarak aşağıdaki ekleme kısımlarının kodlarını yazmak kaldı. Fırsat bulunca hemen yapacağım kısmetse.
  1. Kategori
  2. Lokasyon
  3. Üretici
  4. Tedarikçi
  5. Paket
 
Komponent ekleme ekranı aşağıdaki şekliyle bitti.
İlave olarak Komponent eklendikten sonra daha hızlı veri girilebilmesi için Komponent Adı bölümüne otomatik imleç yerleşimi yaptım, her seferinde oraya tıklamaya gerek kalmadı, son değerler seçili olarak sadece Komponent adı yazıp Enter ile hızlıca veritabanına kaydediliyor.

Komponent adı kısmında diyelim direnç ekliyoruz, direnç değeri olarak 100 yazıp, Ω, kΩ, yada MΩ değerleri ve toleransı, watt gibi değerler Komponent Adı kısmının yanında Paket kısmı gibi bir açılır menüden mi seçilsin ya da örnek 100 kΩ 1W 10% tolerans şeklinde el ile mi yazalım?
Aynı şey diğer toleranslı tüm komponentler için de geçerli, nasıl yapalım?

1736062575953.png
 
Son düzenleme:
Mesela direnç değerleri girerken sadece rakam, m, k, ve M ile milli, kilo, ve Mega ifade edilebilir. Kapasitör ve endüktör için de aynı durum var. Tolerans ve güç doğrudan değerden parse edilebilir belirttiğin gibi, ama opsiyonel olmalı bence. Ama drop down list seçimine bence gerek yok. Bir seri direnç girerken "tolerans" diye ayrı bir alana %1 set edersin sonra da harıl harıl direnç girersin. Elimizdeki çoğu noname kapasitör için toleransın ne olduğunu bile bilmiyoruz, o alan boş bırakılacak tabiki.
 

Forum istatistikleri

Konular
7,164
Mesajlar
121,688
Üyeler
2,897
Son üye
ehira

Son kaynaklar

Son profil mesajları

az bilgili çok meraklı
Prooffy wrote on semih_s's profile.
Merhaba, sizden DSO2C10 hakkında bilgi rica ettim. Yanıtlarsanız sevinirim...
Unal wrote on taydin's profile.
Timur Bey, Arduino kontrollü bir akü şarj cihazı yapmaya çalışıyorum. Aklımdaki fikri basit bir çizim olarak konu açmıştım. Özellikle sizin fikirlerinizi çok önemsiyorum.
hakan8470 wrote on Dede's profile.
1717172721760.png
Dedecim bu gul mu karanfil mi? Gerci ne farkeder onu da anlamam. Gerci bunun anlamini da bilmem :gulus2:
Lyewor_ wrote on hakan8470's profile.
Takip edilmeye başlanmışım :D ❤️
Back
Top