StuProjectManager webgrensesnitt

StuProjectManager – Enkel webprosjektadministrator i PHP og SQLite

0 kommentar(er)

Redigeringsnotater: Koden er blitt oppdatert, prosjektet er nå på engelsk. Programmet inneholder små feilrettinger og optimisering av sesjonbruk.

1./ Oppstarten til prosjektet.


Dette uansett lite prosjekt har som mål å hjelpe meg med å administrere de nettsider jeg utvikler, ved hjelp av en enkel webside.

Før dess brukte jeg blant annet bokmerker i Firefox for det, uten store problemer. Men bare fordi jeg er bruger av Firefox glemmer jeg ikke alle Chrome-kloner. Det ville betydd å gjøre jobb to ganger.

Og jeg har 2 datamaskiner som jeg bruker til arbeid, noe som øker kravene enda mer. På en av dem er det dualboot, og jeg tester ofte prosjektet på begge operativsystemene for kompatibilitetsgrunner. Derfor trenger jeg en overensstemming mellom miljøene som er nærmest perfekt.

Dermed var det bare logisk å lage en enkel nettside, tilgjengelig gjennom nettleser, som fungerer som lokale bokmerker for de ulike miljøene. Jeg trenger bare å legge denne siden til som favoritt i de forskjellige nettleserne jeg bruker til lokale tester.

Her er et skjermbilde av prosjektet:

Skjermbilde av StuProjectManager

2. Kravspesifikasjonen


De løfter som dette lille prosjektet gir:

Å være kompatibel med PHP 7-8
Å være enkelt å forstå
Å være så kompakt som mulig
Minst mulige linjer kode, og i et eneste fil

Dette er den tilnærmelse som driver dette lille prosjektet.

3. Prosjektets status i dag


Fra den første versjonen av prosjektet som ble presentert i denne artikkelen, har StuProjectManager gjort seg noen viktige oppdateringer.

Idéen er likevel den samme: ha en enkel nettside tilgjengelig for å snaptreffe finne de ulike prosjektene jeg jobber med, spesielt de lokale miljøene som er tilgjengelige via mine forskjellige vhosts.

Imidlertid har den opprinnelige PHP-skriptet gradvis blitt erstattet av en litt mer strukturert applikasjon.

Prosjektet er nå i versjon 0.4 og krever PHP 8 eller nyere, samt utvidelsen SQLite3. Installasjonen går også via Composer.

Målet er likevel uendret: ikke å gjøre dette verktøyet til en komplisert maskin.

3.1. Prosjekter og kategorier


Den logiske neste utviklingen var tillegget av kategorier.

I stedet for å ha en lang liste med prosjekter, er det nå mulig å organisere dem i kategorier og navigere mellom disse rett fra grensesnittet.

Hver prosjekt kan inneholde:

  • et navn;
  • en URL;
  • en beskrivelse;
  • en kategori;
  • en visningsrekkefølge;
  • et favicon.

Kategorier er også administrerbar fra grensesnittet: opprettelse, endring og sletting.

Dette gjør det for eksempel mulig å ha kategorier som Kunder, Perso, Test, Local eller bare organisere dem etter egen måte å jobbe på.

Kategoriene kan også reordres. Den definerte rekkefølgen brukes til å bestemme rekkefølgen av faner i grensesnittet.

3.2. En personlig visningsrekkefølge


En liten funksjonalitet som kan se uansvarlig ut, men som blir raskt praktisk når man begynner å ha mange prosjekter: visningsrekkefølgen.

Hver kategori har sin egen rekkefølge og hvert prosjekt har også en egen rekkefølge.

Du kan derfor bestemme nøktent hva rekkefølgen skal være for de ulike kategoriene, men også for de ulike prosjektene innen hver kategori.

Et lavere nummer betyr bare at elementet vil dukke opp tidligere i listen.

Dette unngår blant annet å treffe til å endre navnet på prosjektene eller kategoriene bare for å få den ønskede rekkefølgen.

3.3. Lenker er ikke lenger begrenset til HTTP


Prosjektet har også utviklet seg med hensyn til lenketjenestebehandling.

StuProjectManager aksepterer nå:

  • HTTP ;
  • HTTPS ;
  • FTP.

Inkluderingen av FTP er spesielt nyttig i et utviklingsmiljø hvor noen prosjekter eller ressurser fortsatt kan være tilgjengelige direkte via dette protokollet.

Funksjonen for automatisk henting av favicons fungerer likevel bare for HTTP og HTTPS-lenker. For FTP-lenker er det mulig å legge til en ikon manuelt.

3.4. En virkelig favicon-håndtering


Favicons har også utviklet seg siden den første versjonen.

Det er nå mulig å bruke favicons for både prosjekter og kategorier, med håndtering av filene direkte gjennom applikasjonen.

For prosjekter som er tilgjengelige via HTTP eller HTTPS kan StuProjectManager også forsøke å hente automatisk favicon fra URL-en til prosjektet.

Målet er hovedsakelig praktisk: å kunne identifisere et prosjekt visuelt uten å måtte lese navnet eller URL-en hver gang.

3.5. Sikkerhetskopi og gjenoppretting


Dette er sikkert en av de viktigste forbedringsene i forhold til den første versjonen.

Da prosjektet er ment å centralisere lenkene til mine utviklingsmiljøer, ville det vært ganske vanskelig å miste databasen eller måtte bygge den på nytt manuelt.

StuProjectManager har derfor nå et integrert system for sikring og gjenoppretting.

Fra brukergrensesnittet kan du generere en ZIP-arkiv som inneholder:

  • prosjekter;
  • kategorier;
  • favicons.

Dataene er blant annet lagret i JSON-filer sammen med mappen som inneholder favicons.

Gjenoppretting fungerer i motsatt retning: bare gi en tidligere generert arkiv.

Før dataene blir overskrevet, lager applikasjonen også en sikkerhetskopi av den eksisterende database og favicons med et tidsstempel.

Gjenoppretting tar også automatisk imot databasens skjema-migrering når det er nødvendig.

Dette gjør det mulig å utvikle applikasjonens struktur uten å måtte bygge database på nytt for hver ny versjon.

3.6. En enkel SQLite-database som alltid holder seg simpel


Utenfor disse nye funksjonene, har jeg holdt meg fast ved SQLite.

Dette er et valg som fortsatt passer godt med prosjektets opprinnelige mål: StuProjectManager skal ikke være en applikasjon som krever en dedikert database-server.

Databasefila projects.db blir automatisk opprettet når du bruker applikasjonen.

Applikasjonen bruker også integritetskonstruksjoner i SQLite for å garantere at et prosjekt alltid er tilknyttet en eksisterende kategori. En kategori kan derfor ikke bli slettet så lenge det er prosjekter knyttet til den.

Dette er en liten detalj, men nettopp denne typen detaljer hjelper med å holde en applikasjon enkel samtidig som man unngår at databasen går i uoverensstemt tilstand.

3.7. Applikasjonen har også blitt strukturert


Den største forskjellen fra den versjonen som ble presentert i det opprinnelige artikkelen ligger i prosjektets organisering.

Koden er ikke lenger samlaget i et enkelt PHP-fil.

Depotet er nå strukturert i flere deler, inkludert:

  • app/ for applikasjonens kode;
  • public/ for den delen som er tilgjengelig fra webserveren;
  • tests/ for automatiserte tester;
  • docs/ for dokumentasjon;
  • Composer for håndtering av avhengigheter.

Prosjektet har også en generert dokumentasjon med Doxygen, som gjør det mulig å lage dokumentasjon for klasser, metoder og filer i PHP basert på kommentarer i koden.

Vi holder oss fortsatt til en relativt liten applikasjon, men med en struktur som begynner å lignere mer på den av et virkelig vedlikeholdbart lite prosjekt.

3.8. Automatiserte tester


En annen forskjell fra den opprinnelige versjonen er at prosjektet nå har automatiserte tester med PHPUnit.

Testerne fokuserer spesielt på modellene Project og Category og bruker en temporær SQLite-database for å unngå å endre reelle data i applikasjonen.

Dette lar deg blant annet sjekke hvordan prosjekt- og kategorihandtering fungerer, men også databaseintegritetsbegrensningene.

For et så lite prosjekt er det selvfølgelig ikke nødvendig for å kunne bruke det.

Men med tiden, når StuProjectManager utvikles videre, gir noen tester mer ro i hodet når du endrer koden.

4. Installasjon og bruk


Installasjonen er opprørt enkelt.

Du trenger bare å hente ned repot, installere avhengighetene med Composer, og starte en PHP-server ved hjelp av public/ som webrot.

For eksempel:

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

SQLite-databasen opprettes automatisk.

Da prosjektet er primært avsett for et lokalt utviklingsmiljø, kan det senere integreres i ditt eget webmiljø, for eksempel bak en vhost, og tilgangstas som noen hvilken som helst annen lokal applikasjon.

Når du er koblet inn på grensesnittet, er funksjonene ganske direkte: Kategorier brukes til å filtrere prosjekter, prosjektene vises i den definerte rekkefølgen, og de ulike handlingene for opprettelse, endring og sletting er tilgjengelig rett fra grensesnittet.

5. Resultatet


I slutten av dagen har StuProjectManager utviklet seg mye siden den lille skripten jeg brukt for å erstatt mine favoritter i nettleseren.

Prinsippet er likevel det samme.

Jeg har flere nettsideprosjekter, flere miljøer, flere nettlesere og flere maskiner. I stedet for å holde en forskjellige favorittsamling basert på brukt miljø, har jeg nå en liten applikasjon som centraliserer alt dette.

Jeg kan finne mine prosjekter igjen, ordne dem, endre rekkefølge, tilordne ikoner og administrere deres lenker fra én enkelt grensesnitt.

Og viktigst av alle, jeg kan lage sikkerhetskopier av alt dette for å kunne gjenopprette det hvis nødvendig.

Applikasjonen er med bevegelighet utviklet for å være enkelt. Jeg har ikke prøvd å gjøre den til et komplett prosjektadministrasjonsverktøy med brukere, oppgaver, kalender, varsler eller andre funksjoner som ville ha skiftet fokus fra det opprinnelige målet.

StuProjectManager brukes bare til å administrere mine lenker til nettsideprosjektene mine.

Og i slutten av dagen er det sannsynligvis denne enkeltheten som er den viktigste delen av prosjektet.

6. Avslutning


Det som for eksempel skulle være et lite PHP-skript på noen tiokort linjer har utviklet seg med mine behov.

Kategorier, tilpasset sortering, favicons, backup/restore, migrasjoner og tester er kommet etterhvert som bruk av prosjektet har vist opp nye behov.

Men jeg ønsker å holde fast ved den opprinnelige filosofien: et enkelt, lett, praktisk verktøy for å snapt finne sine nettsideprosjekter.

Prosjektet er tilgjengelig på GitHub:

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

Depotet inneholder også installasjonsinstruksjoner, dokumentasjon og tester.

Du liker kanskje også:

Kommentarer

Ingen godkjente kommentarer ennå.

Logg inn med en kommentatorkonto for å publisere en kommentar. Logg inn.