Connecta
En portfoliohemsida utvecklad med .NET och ASP.NET MVC. Projektet fokuserade på att skapa en strukturerad webbapplikation där användare kan presentera sin profil, erfarenheter och projekt. Applikationen utvecklades enligt MVC-arkitekturen med tydlig separation mellan modell, vy och controller.
Mitt
ansvarsområde.
Vad jag gjorde
Projektet genomfördes i grupp, där vi samarbetade kring hela utvecklingsprocessen och regelbundet använde parprogrammering. Samtidigt delades projektet upp i olika ansvarsområden. Mina huvudsakliga ansvarsområden var att designa och utveckla användargränssnittet samt back-end funktionaliteten för användarprofiler och privatmeddelanden mellan både inloggade och anonyma användare.
Användares profilsida anpassas dynamiskt utifrån profilens innehåll och användarens inställningar. Sektioner för bland annat färdigheter, utbildning och erfarenheter genereras baserat på det användaren själv lagt till. Användaren kan även välja att låsa sin profil, vilket gör att endast inloggade användare kan se innehållet och anonyma användare hänvisas till att skicka ett meddelande.
Meddelandefunktionen utvecklades för att möjliggöra privata konversationer mellan användare, men även för att låta anonyma besökare kontakta en användare utan att behöva skapa ett konto. Meddelanden lagras i en lokal MySQL-databas och kopplas till respektive konversation och användare. Meddelandefunktionen har även stöd för emojis. Om en inloggad användare har olästa meddelanden visas en notifikation i navigationsmenyn. När en konversation med ett oläst meddelande öppnas markeras det som läst för avsändaren.
Utmaningar & höjdpunkter
Den största utmaningen
Den största utmaningen var att hantera samma meddelandeflöde för både inloggade användare och anonyma besökare. Jag behövde bygga en lösning där backend kunde skilja på vanliga och anonyma konversationer, samtidigt som frontend fortfarande kändes enkel och sammanhängande.
En höjdpunkt
Något jag känner mig nöjd över var att få konversationerna att kännas dynamiska med partial views och JavaScript. Användaren kan skicka meddelanden, använda emojis och se uppdaterad information utan att hela sidan behöver laddas om.
Bilder från projektet.
Inloggad chatt: En vy där inloggade användare kan skicka och ta emot meddelanden innehållande
text eller emojis. När ett meddelande öppnas av mottagaren markeras det som läst.
Anonym chatt: En vy där anonyma användare kan skicka och ta emot meddelanden. För att navigera
tillbaka till konversationen som anonym behöver de använda ett unikt id i URL:en.
Vad jag
tar med mig.
Vad jag lärde mig
Under projektet lärde jag mig att utveckla webbapplikationer med ASP.NET MVC och fick en bättre förståelse för hur Model, View och Controller samverkar för att skapa en tydlig struktur i applikationen. Jag fick även erfarenhet av ett Code First-arbetssätt, där databasen utformas och uppdateras utifrån de modeller och relationer som definieras i koden.
Dessutom lärde jag mig hur autentisering och auktorisering kan implementeras i ASP.NET, samt hur användares lösenord kan hanteras säkert med hashning och saltning.
Vad jag skulle göra annorlunda
Om jag genomförde projektet igen hade jag lagt större fokus på kontinuerlig kommunikation inom gruppen och regelbundet följt upp hur arbetet gick inom de olika ansvarsområdena. Under projektet blev det tydligt relativt sent att vissa delar hade halkat efter vilket ledde till mer tidspress mot slutet. Med tydligare avstämningar hade vi kunnat upptäcka dessa problem tidigare och omfördela arbetet för att säkerställa att alla delar av projektet höll samma tempo.