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

  • Konuyu başlatan Konuyu başlatan TA3UIS
  • Başlama tarihi Başlama tarihi

TA3UIS

Doğan
Katılım
15 Kasım 2023
Mesajlar
2,642
Komponent takibi programı şu an kullanılabilir durumda. Söz verdiğim gibi paylaşıyorum.
Mysql 8, ve PHP 8 sunucusu gereklidir.
Bilgisayarınıza kurup kullanılabilir ya da hostinginize kurabilirsiniz. Doğacak aksaklıklardan sorumlu değilim.
Not: Bu program hobi amaçlı kullanım içindir.

Eksiklikler hatalar olabilir, belirtirseniz düzeltmeye çalışırım vakit bulursam.

İki versiyon var.
Neden 2 versiyon var derseniz, 2. versiyon üzerinde giderken DataTables eklentisi ile yaşadığım yavaşlıklar yüzünden 1. versiyon olan kendi versiyonu geliştirmeye karar verdim.
Hangisini isterseniz onu kullanın. Ben 1. versiyonu kullanıyorum.


1. versiyonu tamamen kendim yazdım. Bu versiyonda satır içi düzenleme mevcut, seçim yapılır yapılmaz ya da düzenleme modundan mouse ayrılır ayrılmaz güncelleniyor, ayrıca butona basarak ta modal penceresi ile de güncelleme var.

1742241704936.png


1742243106995.png


1742243148302.png

Detay penceresi.
1742243280052.png







2. versiyon tabloları DataTables eklentisi ile oluşturuyor.

1742241440908.png




İlgili Dosyalar:
Komponent-1 dosyası 1.Versiyon.
Komponent-2 dosyası 2.versiyondur.


İşinize yaraması dileğiyle.

Giriş ekranındaki kullanıcı bilgileri:
eposta: test@test.com
parola: 1
Giriş yaptıktan sonra parolanızı değiştirebilirsiniz.


Komponent-1.zip dosyası için Düzeltme 1:
Arama fonksiyonunda iyileştirme sağlayan komponent-listele.zip dosyasını ekliyorum:
Komponent-1.zip dosyası içindeki komponent-listele.php dosyası ile değiştirmeniz yeterli.


Belirtmeyi unutmuşum:
Herhangi bir sebeple parolanızı unuttuysanız ve giriş yapamıyorsanız parola-sifirla.php dosyasındaki aşağıdaki kod yapısını bularak ilgili yerlerde değişiklik yaparak kayıtlı e-posta adresinize parola sıfırlaması için gerekli bir form gönderilecektir. Gelen linke tıklayarak yeni parolanızı oluşturabilirsiniz.


Kodlar:
PHP:
// PHPMailer ile e-posta gönderiyoruz
        try {
            $mail->isSMTP();
            $mail->Host = 'SMTP ADRESİNİZ';  // SMTP sunucu adresini yazın.
            $mail->SMTPAuth = true;
            $mail->Username = 'E-POSTA ADRESİNİZ';  // SMTP kullanıcı adı
            $mail->Password = 'EPOSTA ŞİFRENİZ';  // SMTP şifresi
            $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
            $mail->Port = 587;

            $mail->setFrom('E-POSTA ADRESİNİZ', 'Web Sitesi Adı');
            $mail->addAddress($eposta);

            $mail->isHTML(true);
            $mail->Subject = 'Parola Sıfırlama Talebi';
            $mail->Body = "Parola sıfırlama işlemini başlatmak için aşağıdaki linki tıklayın:<br><a href='http://localhost/komponent/parola-sifirla-islem.php?token=$token'>Parola Sıfırlama Linki</a>";


$mail->Body kısmı:

PHP kurulumunuz localhost/komponent şeklindeyse aşağıdaki kod yapısını değiştirmeyin.
PHP:
 $mail->Body = "Parola sıfırlama işlemini başlatmak için aşağıdaki linki tıklayın:<br><a href='http://localhost/komponent/parola-sifirla-islem.php?token=$token'>Parola Sıfırlama Linki</a>";

PHP kurulumunuz web hosting sitenizde komponent klasörü içindeyse örnek:
PHP:
 $mail->Body = "Parola sıfırlama işlemini başlatmak için aşağıdaki linki tıklayın:<br><a href='http://websitem.com/komponent/parola-sifirla-islem.php?token=$token'>Parola Sıfırlama Linki</a>";


1742410863622.png

1742410889105.png




Sütunları sağa sola taşımak için ilgili sütunu tutup 2sn basılı olarak bekleyin ve sağa sola taşıyın.

1742412340366.png

1742412354630.png
 

Ekler

Son düzenleme:
1735900345377.png

1735900367289.png
1735900408685.png

1735901761135.png


1735900438895.png
1735900472129.png
1735900506476.png
 

Ekler

  • 1735901744184.png
    1735901744184.png
    101.7 KB · Görüntüleme: 64
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,571
Mesajlar
126,688
Üyeler
3,068
Son üye
lordlordleon

Son kaynaklar

Son profil mesajları

Python Geliştirmeye eklediğim yapay zeka sunucusu, yeni başlayanlar için roket etkisi
Bir insanın zeka seviyesinin en kolay tesbiti, sorduğu sorulardır.
yapay zeka interneti yedi bitirdi, arama motoru kullanan, forumlara yazan kaldı mı ?
Freemont2.0 herbokolog Freemont2.0 wrote on herbokolog's profile.
nick iniz yakıyor
:D
az bilgili çok meraklı
Back
Top