Katika utengenezaji wa mifumo ya kitaalamu ya web, mara nyingi tunahitaji sehemu ambayo admin anaweza kupakia (upload), kuhariri, au kufuta faili mbalimbali. Kwenye mfumo huu, tumeunda paneli ya admin inayosimamia mifumo ya Excel, ikijumuisha:

✔ Kupakia faili (xlsx, xls, zip)
✔ Kuhifadhi maelezo ya faili kwenye database
✔ Kuedit na kubadilisha faili
✔ Kuonyesha video ya YouTube inayohusishwa na mfumo
✔ Kupakua (download) na kufuta faili
✔ Dashboard safi na ya kisasa inayotumia Bootstrap

Katika makala hii, tunaeleza kwa undani jinsi mfumo unavyofanya kazi.

🔐 1. Ulinzi wa Admin (Session Verification)

Mfumo unaanza kwa kuhakikisha kuwa kitambulisho cha admin kimefungwa (session). Ikiwa admin hajaingia, anapelekwa moja kwa moja kwenye ukurasa wa login:

session_start();
if (!isset($_SESSION['admin_logged'])) {
header("Location: upload_login.php");
exit;
}


Hii inalinda mfumo usiingiliwe na watu wasioruhusiwa.

🗃️ 2. Kuunganishwa na Database

Mfumo unaunganishwa na database kwa kutumia mysqli:

$conn = new mysqli("localhost", "Kakuzi1", "Kakuzi1", "Kakuzi1");


Hapa ndipo taarifa za faili zote zinahifadhiwa—jina, maelezo, ukubwa, aina ya mfumo, na kiungo cha YouTube.

📤 3. Kupakia Faili Mpya (Upload)

Sehemu hii hukuruhusu kupakia faili mpya kutoka kwa admin:

▶ Admin huweka:

Jina la mfumo

Aina ya mfumo (sample / complete)

Maelezo ya mfumo

YouTube link (hiari)

Faili la Excel (lazima)

Faili hupewa jina jipya lenye timestamp ili kuepuka majina kurudiwa:

$filename = time() . "_" . basename($_FILES["excel_file"]["name"]);


Baada ya kufanikiwa kupakia, data inaingia kwenye database:

$sql = "INSERT INTO excel_files (title, description, filename, size, type, youtube_link, uploaded_at)
VALUES (...)";


Ikiwa upload imefanikiwa, admin anaona ujumbe:

✔ Mfumo umeongezwa kwa mafanikio!

✏️ 4. Kuhariri Mfumo (Edit Function)

Admin anaweza kufanya mabadiliko mengine yoyote, ikiwa ni pamoja na:

Kubadilisha jina la mfumo

Kurekebisha maelezo

Kubadilisha aina ya mfumo

Kusasisha YouTube link

Kubadilisha faili lenyewe (hiari)

Mfumo unakagua kama faili mpya limewekwa:

if (!empty($_FILES['edit_excel_file']['name'])) {
// upload file logic
}


Na baadaye kusasisha database:

$sql = "UPDATE excel_files SET ... WHERE id=$id";

📺 5. Kuonyesha Video ya YouTube

Ikiwa admin ameweka link ya YouTube, mfumo huchambua video ID na kuonyesha preview:

preg_match('/(?:v=|be\/)([a-zA-Z0-9_-]+)/', $row['youtube_link'], $m);


Inaonyeshwa ndani ya iframe kama video ndogo.

📋 6. Kuonyesha Mifumo Iliyopakiwa

Mifumo yote inaonyeshwa kwenye jedwali safi lenye Bootstrap:

ID

Jina la mfumo

Aina (badge ya rangi)

Ukubwa wa faili

Video preview

Tarehe ya kupakiwa

Buttons za: Edit, Download, Delete

Mfano wa vitendo:

<a href="#" class="btn btn-outline-primary btn-sm"><i class="fa fa-edit"></i></a>
<a href="excel_mifumo.php?download=ID" class="btn btn-outline-success btn-sm"><i class="fa fa-download"></i></a>

🧼 7. Muonekano wa Kisasa (Bootstrap + Custom Styling)

Mfumo umetengenezwa kwa muundo wa kisasa:

Cards zilizopinda pembeni

Buttons zenye icons

Shadow effects

Responsive design

Hii inafanya paneli ya admin iwe rahisi, maridadi, na ya kiwango cha juu.

🎯 Hitimisho

Mfumo huu unaruhusu admin kusimamia faili za Excel kitaalamu bila ugumu. Ni suluhisho bora kwa:

✔ Mifumo ya elimu
✔ Mifumo ya mauzo
✔ Mifumo ya uhasibu
✔ Web systems nyingine zinazohitaji kupakia na kudhibiti faili