Universitetsprojekt

NGO

NGO interface preview

En intranätapplikation för en fiktiv icke-statlig organisation som utvecklades i Java med hjälp av Swing i NetBeans, där MySQL användes för lokal databaslagring. I applikationen kan användare logga in och hantera information kopplad till organisationens verksamhet, till exempel projekt, personal, samarbetspartners och administrativa uppgifter.

MySQL Git Java Swing
NGO interface preview

Vad jag gjorde

Detta var det första utvecklingsprojektet jag genomförde under utbildningen och hela gruppen hade relativt begränsad erfarenhet av programmering. Vi arbetade därför mycket tillsammans och hjälpte varandra med kodning, felsökning och problemlösning. Arbetet delades upp i olika ansvarsområden men samarbetade och bidrog till andra delar av projektet.

Mina huvudansvar var att utveckla funktionalitet för användarroller och behörigheter i applikationen, designa och implementera gränssnitt för att presentera FN:s 17 globala mål samt utveckla både gränsnitt och back-end för hantering av avdelningar. Jag bidrog även till design av databasstrukturen och skrev SQL-frågor för att hämta och lagra data i MySQL-databasen.

Projektet gav oss också vår första praktiska erfarenhet av Git i ett utvecklingsteam. Vi lärde oss tillsammans att använda versionshantering för gemensam kodutveckling, samordna våra ändringar och hantera de konflikter som kunde uppstå när flera personer arbetade parallellt i samma kodbas. Vi lärde oss vikten av att kommunicera tydligt om vilka ändringar vi gjorde i koden och hur vi kunde lösa konflikter på ett effektivt sätt.

Utmaningar & höjdpunkter

Den största utmaningen

Projektet pågick över jul, vilket gjorde det svårare att hålla arbetet på rätt spår och samarbeta effektivt under ledigheten. Vi delade därför upp arbetet för att kunna fortsätta individuellt. När vi sedan återförenades hade alla utvecklat olika delar av systemet, vilket innebar att det plötsligt fanns stora delar av kodbasen som övriga gruppmedlemmar hade begränsad insyn i. Det blev en utmaning att sätta sig in i varandras kod och få ihop de olika delarna till en helhet, särskilt eftersom detta var vårt första större utvecklingsprojekt.

En höjdpunkt

Det var väldigt roligt att få omsätta kunskaperna från den första terminen i praktiken och för första gången utveckla ett större system tillsammans med andra. Alla i gruppen var engagerade och vi skapade en bra miljö att lära sig i vilket gjorde det lättare att arbeta tillsammans och utveckla våra färdigheter. Det var särskilt belönande att i slutet kunna presentera något som vi själva hade designat och utvecklat och faktiskt kände oss stolta över. Jag är fortfarande nöjd med resultatet även om jag utvecklats mycket sedan dess och idag hade gjort den ännu bättre.

Vad jag lärde mig

Eftersom min tidigare erfarenhet inom programmering var relativt begränsad var detta projekt en viktig byggsten och lärde mig mycket om hur man utvecklar och felsöker Java-applikationer. Det gav mig en starkare förståelse för objektorienterad programmering, databasintegration och SQL-Queries. Jag lärde mig också att arbeta i ett team och kommunicera effektivt med mina gruppmedlemmar, samt att hantera versionshantering genom Git.

Vad jag skulle göra annorlunda

Med den erfarenhet jag har idag hade jag försökt behålla en bättre gemensam förståelse för hela kodbasen, även när arbetet behövde delas upp. Vi hade exempelvis kunnat arbeta mer med kodgranskning och regelbundna genomgångar av varandras implementationer. Det hade gjort det enklare att fortsätta arbeta tillsammans när gruppen återförenades och minskat beroendet av den person som ursprungligen utvecklat en viss del.