StuProjectManager – paprasta internetinių projektų valdymo sistema su PHP ir SQLite

StuProjectManager – paprasta internetinių projektų valdymo sistema su PHP ir SQLite

0 komentaras(-ai)

Redaguota: Kodas atnaujintas, projekto kalba anglų. Programavimo tikslai: mikro klaidų pataisymai, optimizuotas sesijų naudojimas.

1./ Projekto pradžia.


Ši maža programa yra sukurta, kad aš galėčiau valdyti projektus, kuriuos sukuriau, naudodami paprastą internetinę puslapį.

Apskritime, aš naudojau Firefox žymeklius šiam tikslui. Bet tai nereiškia, kad aš pamirštų visus Chrome klonas. Reikėtų daryti darbą dviejuose naršyklėse.

Taip pat turime du kompiuterius, kuriais dirbu. Jeigu noriu įvertinti projektą abiem operacinių sistemų versijoms, reikia užtikrinti didelę vienodumą tarp aplinkų.

Dėl to, sukurtas paprastas internetinis puslapis, kuris gali būti prieinamas per naršyklę ir yra mano vietiniu žymekliai. Reikia tik įtraukti šį puslapį į mėgstamus naršyklėse, kuriomis noriu atlikti lokalinius testavimus.

Štai projekto nuotrauka:

StuProjectManager ekrano kopija

2. Projekto reikalavimai


Projektas turi įveikti šiuos tikslus:

Bendrinti su PHP versijomis 7-8
Būti paprastu suprantamą
Būti mažiausia galima
Turėti mažiausias kodus ir vienoje failo

Tai yra projekto tikslai.

3. Projektas šiuo metu


Nuo pirmosios versijos, kurioje buvo aprašytas šiame straipsnyje, StuProjectManager daug įvairiau evoliucinė.

Idėja paliko savo pradinę formą: turėti paprastą internetinį puslapį, kurio pagalba greitai rasti visus projektus, su kuriomis dirbu, įskaitant lokalinius aplinkas, prieinamus per skirtingus vhosts.

Tačiau pradinė PHP programa buvo sutaupyta ir suplėsta į mažesnią, bet tvaresnę programinę įrangą.

Projektas šiuo metu yra versijos 0.4 ir reikalauja PHP 8 ar naujesnio bei SQLite3 papildinio. Diegimas vyksta per Composer.

Tačiau tikslai paliko savo pradinę formą: neprisidėti prie „usine à gaz“.

3.1. Projektai ir kategorijos


Pirmasis logiškas pažangas buvo kategorių įtraukimas.

Daugiau nei ilgas projektų sąrašas, dabar galima juos organizuoti pagal kategorijas ir per skirtingas kategorijas nuvokti tiesiogiai iš sąsajos.

Kiekvienas projektas gali turėti:

  • pavadinimą;
  • URL;
  • aprašymą;
  • kategoriją;
  • rodomojo eigos tvarką;
  • favicon.

Kategorijos taip pat valdomos iš sąsajos: jų galima sukurė, pakeisti ir pašalinti.

Pavyzdžiui, gali būti kategorių kaip „Klientai“, „Asmeniniai“, „Testavimas“, „Lokaliai“ arba tikrai pagal jums patogiausią būdą organizuoti.

Kategorijos taip pat galima pakeisti tvarka. Nustatytas tvarkas naudojama nustatyti sąsajos skirtukų eigos.

3.2. Pasirinktas rodomojo eigo tvarkas


Mažai pažymėta funkcionalumas, bet kas kartu su daugiau projektų jis taps praktiškas: pasirinktas rodomojo eigo tvarkas.

Kiekvienai kategorijai yra sava tvarka ir kiekvienam projekto įkūrimui taip pat yra sava tvarka.

Galima, todėl, nustatyti tiksliai, kaip kategorijos bus rodomos sąsajoje, bei kaip projektai bus rodomi kiekvienoje kategorijoje.

Mažesnis numeris reiškia, kad elementas bus rodomas greičiau sąraše.

Tai suteikia galimybę neturėti keisti projekto ar kategorijos pavadinimus tiesiog norint jų eigoje pakeisti vietą.

3.3. Nuorodos ne tik HTTP


Projektas taip pat išplėstas nuorodų valdymu.

StuProjectManager dabar priima:

  • HTTP;
  • HTTPS;
  • FTP.

FTP priedavės pridėjimas yra svarbus kai kuriais projektų kūrimo kontekstais, nes dauguma projektų arba ištekliai gali būti tikrai pasiekti šiuo protokolu.

Tačiau favicon funkcija vis dar yra internetinės sąsajos apimtis: automatinė favicon gavimas veikia HTTP ir HTTPS nuorodoms. FTP nuorodomis favicon galima pridėti rankiniu būdu.

3.4. Realus favicon valdymas


Favicon funkcija taip pat išplėsta nuo pirmosios versijos.

Dabar galima naudoti favicons projektams ir kategorijoms, bei valdyti failus tiesiogiai programoje.

HTTP ar HTTPS pasiektoms projekto svetainėms StuProjectManager gali automatiškai gauti favicon iš projekto URL.

Favicon naudojimas tikrai yra praktinis: greitai identifikuoti projektą vizualiai, nepaisant jo pavadinimo arba URL.

3.5. Saugumas ir atkūrimas


Tai tikriausiai yra vienas svarbiausių naujovių palygint su pirmąja versija.

Projektui, kuris yra skirtas jungti įvairius mokslinius aplinkas, praradimas duomenų bazės ar jos rankinis kūrimas būtų tikrai sunku.

StuProjectManager turi dabar integruotą saugojimo ir atkūrimo sistemą.

Iš sąsajos galima sukurti ZIP archyvą, kuris apimtų:

  • projektus;
  • kategorijas;
  • favicon.

Duomenys yra saugomi JSON failuose ir sujungiami su dėžutėmis, kuriems priklauso favicon.

Atkūrimas vyksta atvirkščia tvarka: reikia tik pateikti ankstesniai sukurtą archyvą.

Prieš pašalinant esamus duomenis, programa taip pat atlieka esamų duomenų ir favicon saugojimą su laiku žymėmis.

Atkūrimas taip pat įgirdžia automatines duomenų bazės schema migracijas, kai tai yra reikalinga.

Tai leidžia projektui evoliuoti be manoma duomenų bazės kūrimo reikalavimų kiekvienos naujos versijos metu.

3.6. Vietales SQLite duombazė visada paprasta


Priešinguose naujovėse, aš taip pat likau SQLite.

Tai yra pasirinkimas, kuris vis dar gerai atitinka projektą: StuProjectManager nėra skirta būti programinei įrangai, reikalingai specialaus duomenų bazės serverio.

Duombazė projects.db yra sukuriama automatiškai programa naudojimo metu.

Programa taip pat naudoja SQLite integritetinius ribojimus, kad užtikrintų, jog projektas visur bus susietas su esančia kategorija. Kategoriją negalima pašalinti, kol jai yra priskirti projektais.

Tai mažos detalės, bet just tai yra toks dalykas, kuris leidžia užtikrinti, kad programa būtų paprasta ir nepradėtų veikti nelogiškai.

3.7. Programa taip pat sudarėsiuose


Didelė skirtumas su originaline versija yra šalia projektavimo organizacijos.

Kodas jau nėra suskirstytas vienoje PHP faile.

Repozitoriumi dabar yra daugiau dalių, įskaitant:

  • app/ programos kodui;
  • public/ internetiniam prieinamą dalį nuo serverio;
  • tests/ testams;
  • docs/ dokumentacijai;
  • Composer, kuris naudojamas bendruomenėms valdymui.

Projektas taip pat turi dokumentaciją, kuri yra sukurti su Doxygen, leidžiantį generuoti PHP klasės, metodų ir failų dokumentaciją iš kodinių komentarų.

Taigi, mes vis dar turime paprastą programą, bet ji jau turi struktūrą, kuriai pritinka mažasis valdomas projektas.

3.8. Automatiški testai


Kitas skirtumas su originaline versija yra tas, kad dabar programa turėtų automatinius testus su PHPUnit.

Testai fokusuojasi į Project ir Category modelius ir naudoja laikinoją SQLite duombazę, kad nekeitų tikrųjų programos duomenis.

Tai leidžia taip pat patikrinti projektų valdymo ir kategorijų elgesį bei užtikrinti duomenų bazės integritetą.

Tokiam mažui projekto, tai be jokios abejonės, nereikia, norint jį naudoti.

Bet kai StuProjectManager bus tobulinamas, turėtų būti keletas testų, kad galėtumėte modifikuoti kodą su mažesne nervybe.

4. Įdiegimas ir naudojimas


Įdiegimas yra apibrėžtas paprastai.

Reikia tik atsisiimti katalogą, įdiegti priklausymus su Composer, o tada paleisti PHP serverį naudodami public/ kaip svetainės šaknį.

Pavyzdžiui:

git clone https://github.com/Steform/StuProjectManager.git cd StuProjectManager composer install php -S localhost:8000 -t public

SQLite duombazė yra sukurta automatiškai.

Projektas būna pirmiausia skirtas lokaliam kūrimui, todėl jį galima integruoti į savo internetinę aplinką, pvz., užkirsti vhost-ais ir pasiekti kaip bet kuri kitą vietinę aplikaciją.

Prisijungę prie sąsajos, veiksmas yra tiesioginis: kategorijos leidžia filtruoti projektus, projektais rodoma numatytomis tvarka, o kūrimo, modifikavimo ir šalinimo veiksmai yra prieinami tiesiogiai iš sąsajos.

5. Rezultatas


Galutinis StuProjectManager daug tobulėjo nuo mano įprastųjų naršyklės favoritų keleivio, kuris tik pakeitė man reikalingus svetainių adresus.

Tačiau principas liko tas patys.

Turiu kelias internetinius projektus, kelius aplinką, kelias naršyklęs ir kelias mašinės. Vietais, kuriose būtų skirtingi favoritų rinkiniai pagal naudojamos aplinkas, aš dabar turime vieną specialiąją programą, kuri viską toliau centruoja.

Galiu jame rasti savo projektus, juos suskirstyti, pakeisti jų eigos ir priskirti ikonas, taip pat valdyti jų nuorodas vienoje sąsiautoje.

Ir svarbiausia, galiu išsaugoti viską, kad galėčiau toliau atkurti, jeigu būtina.

Programa yra laikoma paprasta. Niekas nepabandomas sukurti kompleksinį projektų valdymo įrankį su vartotojais, užduodamais užduotėmis, planuoklės, pranešimais ar kitomis funkcijomis, kurios galėtų atskirti projektą nuo jo pradinio tikslų.

StuProjectManager taip tikriausiai naudojasi valdyti mano internetinių projektų nuorodas.

Ir paskutinėje gali būti, kad šis paprastumas yra visos programa svarbiausias dalis.

6. Išvados


Kurį laiką pradžioje buvo tik dvidešimtinių eilučių PHP skriptas, aš jau dabar turime didėjančią programą, kurios poreikiams.

Kategorijos, individualus rūšiavimas, faviconai, backup/restore, migracijos ir testai įtraukti iki to laiko, kai programa naudojimo padarė naujas poreikius.

Tačiau noriu užtikrinti pradinę filozofiją: paprastą, svorinį ir praktinį asmeninį įrankį, kuris greitai gautų internetinius projektus.

Projektas yra prieinamas GitHub:

StuProjectManager https://github.com/Steform/StuProjectManager

Depotas taip pat apima diegimo instrukcijas, dokumentaciją ir testus.

Jums taip pat gali patikti:

Komentarai

Kol kas nėra patvirtintų komentarų.

Prisijunkite su komentuotojo paskyra, kad galėtumėte komentuoti. Prisijungti.