# P&O CW: Chatter app: Team 10
## :eight_spoked_asterisk: Project Details
- HackMD assignment semester 1: https://hackmd.io/82PjsAbcTyu-4K26Rx_2XQ
- HackMD assignment semester 2: https://hackmd.io/RWoBAcGCRaqfUdtytSbYxA
- Gitlab: https://gitlab.kuleuven.be/p-en-o-cw/2023-2024/chatter/team-10
- Overleaf verslag: https://www.overleaf.com/4125763511xyhcjskjfwjy#ccbadd
- Presentation semester 1: https://kuleuven-my.sharepoint.com/:p:/r/personal/michiel_segers_student_kuleuven_be/Documents/P%26O%20CW/eindpresentatie.pptx?d=wd8fe33e768f0424bb2d60ee1b2e72834&csf=1&web=1&e=WQ5J1J
- Taken semester 2: https://hackmd.io/6km1bLPRRZG5Jtj98kKT1w
:::success
Basic functionality:
By the end of the semester, we expect a functional chat app satisfying at least the following requirements:
- Users can sign up and log in with their account
- Users can join and leave channels
- Users can send messages in a channel
- All other members of the channel receive this message
- Graceful shutdown of the server does not result in data loss (server persistence)
:::
---
## Chattercon
- Cognitive walkthrough for creating & deleting a channel: https://forms.gle/Cia9aU2Ujs5p6df8A
- System usability Questionaire for registration: https://forms.gle/6T5ibgQyAZtNw7hz8
## Verdeling taken
- [ ] Inloggen => Jonas, Beere
- [ ] Berichten kunnen sturen => Michiel C., Stefan
- [ ] databank voor berichten op te slaan => Michiel S., Lili
- [ ] verschillende channels => Yani, Senne
## :calendar: Weekly Meetings
## Semester 1
### :small_blue_diamond: Meeting 1 (notities van Lili De Bruyn)
- **Datum:** 2023/10/30
- **Afwezig:** Stefan
- Kennisgemaakt met teamgenoten, assignment doorgelezen en dan taken verdeeld. Taken verdeeld heeft het meeste van onze tijd gepakt omdat het nog heel onduidelijk was wie welke functionaliteit doet.
### :small_blue_diamond: Meeting 2 (notities van Senne Stans)
- **Datum:** 2023/11/06
- **Afwezig:** /
- Vooraf deze week: Begrijpen hoe het project inelkaar zit. Websockets begrijpen. Database gemaakt en huffman code geïmplementeerd.
- Deze week: login maken, berichten in een specifiek kanaal sturen.
- Channels aanpak: user kunnen channel joinen dit wordt bijgehouden in database. Users kunnen maar actief zijn in 1 channel en actieve user in specifiek channel worden bijgehouden in een dictionary.
### :small_blue_diamond: Meeting 3 (notities van Michiel Cools)
- **Datum:** 2023/11/13
- **Afwezig:** /
- Voor de meeting: De datastructuur voor de users en channels te koppelen is gemaakt. De lookup feature is klaar nog geen testen.
- Deze week: De verschillende branches van elkaar mergen zodat we verder kunnen bouwen op elkaar. lookup feature verder uitgewerkt en testen voor geschreven. Ook 2 extra features toegevoegd om niet enkel op tijd te zoeken maar ook berichten zoeken die gestuurd zijn door een bepaalde persoon en berichten zoeken die een bepaald woord bevatten.
- Er waren veel problemen met de departementale pc's waardoor de helft van het team niets kon doen.
### :small_blue_diamond: Meeting 4 (notities van Yani Vanden Branden)
- **Datum:** 2023/11/20
- **Afwezig:** /
- Voor de meeting: Client commands klaar met unittests, een merge van login naar main, nakijken van geschreven code
- Deze week: pipeline fixen, verschillende delen mergen naar main, linter fixen
- eerste basisfunctioneel chatsysteem testen
- systeem voor purging expired accounts
### :small_blue_diamond: Meeting 5 (notities van Jonas Klingels)
- **Datum:** 2023/11/27
- **Afwezig:** Beere (fiets kapot)
- Voor de meeting: testen geschreven, wss is afgewerkt, removeaccount afgewerkt, database testen geschreven, overleafe aangemaakt, kleine foutjes gefikst
- Deze week: message in database als bestand wordt verstuurd (bestanden worden niet bijgehouden), testen afwerken, licences.md updaten✅, chatserver testen aanpassen, aan verslag schrijven, gdpr regels -> akkoord geven bij register(beere), waarschuwing voor het vervallen van account(beere)
- verslag:
- het verslag proberen afwerken voor volgende week maandag
- foto trekken, iedereen schatting van uren maken
- description app (halve p) (Michiel Cools)
- overview process (senne)+ demo (readme file + tag)
- technical description features: (2 halve paginas) (login feature ->beere)( channel feature -> senne)
- evaluation teamwork :🙅
-dividing of the tasks (naam voor features + start en einddatum aan geven 3/4 ve pagina, kijk met data van branches) (Jonas, iemand van channels en messages nog hun deel schrijven want ik weet niet genoeg hoe dit verder opgedeeld werd)
- testing (volledige pagina)(Michiel Segers)
- improvements (hypotetische verbeteringen halve pagina)(Jonas)✅
- Conclusion (kwart pagina)
- appendix: git (halve pagina)
### :small_blue_diamond: Meeting 6 (notities van Beere Rits)
- **Datum:** 2023/12/04
- **Afwezig:** /
- Voor de meeting: file sharing (behalve linter), channel descriptie, active users, /close commando, aanpassingen lookup, extra testen voor client commands, klad versie verslag
- Deze week: alle branches mergen of weggooien, kleine aanpassingen, finishing touches verslag, team foto, presentatie
## Semester 2
### :small_blue_diamond: Meeting 7 (notities van Stefan Markovsky)
- **Datum:** 2024/02/13
- **Afwezig:** /
- Voor de meeting:
- opdracht nog lezen en goed doornemen door iedereen.
- Michiel S, Jonas schrijven het verslag
- Michiel C, Beere, Senne, Jani, Stefan, Lili doen planning voor het semester.
- Deze week:
- semester 1 opgaves afkrijgen
- File Sharing: Server saves file, client command (Stefan)
- DataBase Clean-up: file deletion from server when user leaves (Lili)
- message lookup: History show n previous messages (Not the whole conv) (Beere)
- code cleanup + documentation (Everyone)
- Database persistence (Michiel S. + Lili + Yani)
### :small_blue_diamond: Meeting 8 (notities van Michiel Cools)
- **Datum:** 2024/02/20
- **Afwezig:** /
- Vorige week:
- Verder aan het verslag gewerkt.
- Code cleanup
- Wijzigingen aan database
- Deze week:
- Verslag nalezen en herwerken (Iedereen).
- Testen betrouwbaarder maken (Michiel C.) :heavy_check_mark:
- File Sharing (Stefan)
- Beginnen met encryption (Beere + Jonas)
- Database lookup (Lili + Michiel S.)
- Gui beginselen (Yani + Senne)
### :small_blue_diamond: Meeting 9 (notities van Jonas Klingels)
- **Datum:** 2024/02/27
- **Afwezig:** Lili dokter, dus komt later aan/
- Vorige week:
- Lookup commandos zijn aangepast, lookup word is 3x sneller
- Stefan functionaliteit van opslagen files afgemaakt, kleine bug aanpassen, UI is nog lelijk
- Research naar opdracht tweede semester
- UI veel research naar gebeurd, veel op gesukkeld
- Deze week:
- Michiel S gaat kijken naar lookup time met lili
- Michiel C gaat verder werken aan internet connectie
- Stefan schrijft testen voor opslagen bestanden
- Beere en Jonas werken research naar encryption af en beginnen te integreren
- Senne en Yani werken verder aan GUI
- Sessie om 16u15 over user experience voor iedereen
### :small_blue_diamond: Meeting 10 (notities van Yani Vanden Branden)
- **Datum:** 2024/03/05
- **Afwezig:** Stefan, komt later aan
- Vorige week:
- Beere begonnen aan local key storing
- Deze week:
- Beere/Jonas werken verder aan local key storage
- Lili/Michiel S. werken verder aan look up search algoritmes
- Michiel C. knutselt verder aan de local tunnel
- Stefan verbetert file sharing en compressie
- Senne/Yani designen de gui verder
### :small_blue_diamond: Meeting 11 (notities van Jonas Klingels)
- **Datum:** 2024/03/12
- **Afwezig:**
- Vorige week:
- Senne: login afgemaakt GUI
- Deze week:
- Lili en Michiel S werken verder aan lookup time
- Beere en Jonas werken verder aan encryptie
- Yani en Senne werken verder aan GUI, kiezen 2 features voor de chattercon
- Stefan efficiente compression verder werken
- Michiel C laatste kleine dingen voor over internet, is bijna klaar
### :small_blue_diamond: Meeting 12 (notities van Lili De Bruyn)
- **Datum:** 2024/03/19
- **Afwezig:**
- Vorige week:
- Senne & Yani: heel veel gedaan aan GUI: beginscherm, login, tussenscherm, actions, lijst van channels, lijst van users
- Deze week:
- chattercon: nog bugfixes. 2 features: delete & register
- kijken naar slides van die gastlezing over user experience
- Lili: Benchmarken van lookuptime & google forms om gebruikersacties methodologisch te testen
- Beere en Jonas werken verder aan encryptie
- Stefan: transmissie
- Michiel: certificaten voor localtunnel afgemaakt!
### :small_blue_diamond: Meeting 13 (notities van Beere Rits)
- **Datum:** 2024/04/16
- **Afwezig:**
- Vorige week:
- Vakantie:
- Beere en Jonas: Bijna klaar met sessions
- Yani en Senne: Major bugfixen in gui en extra gui features
- Deze week:
- Lili en Michiel: Gegevens chattercon verwerken.
- Beere en Jonas: Hopelijk klaar met sessions
- Stefan (hulp Michiel): Normaal klaar met filesharing na deze week
- Yani en Senne: Gui bugfixen en uitbreiden
### :small_blue_diamond: Meeting 14 (notities van Jonas Klingels)
- **Datum:** 2024/04/23
- **Afwezig:**
- Vorige week:
- Senne en Yani: veel bugfixing omtrent UI
- Stefan: heeft interface van compressiealgoritme afgemaakt en benchmarks beginnen maken
- Deze week:
- Lili en Michiel C: verslag
- Beere en Jonas: Hopelijk klaar met decryption
- Stefan : Benchmarks
- Yani en Senne: UI verder
- Michiel S: testen van UI
### :small_blue_diamond: Meeting 15 (notities van Lili De Bruyn)
- **Datum:** 2024/04/30
- **Afwezig:**
- Vorige week:
- Jonas: private channels gefixt
- Yani: 1 UI bug gefixt
- Senne: meerdere UI bugs gefixt
- Stefan: benchmark van file sharing
- Michiel S.: Lempel-ziv aangepast
- Deze week:
- Lili,Michiel C. & Jonas: Verslag + eerste vorm presentatie
- Senne,Yani & Beere: werken samen om UI af te krijgen
- Michiel S.: verslag & Huffman
- Stefan: Huffman verbeteren
### :small_blue_diamond: Meeting 16 (notities van Jonas Klingels)
- **Datum:** 2024/05/07
- **Afwezig:**
- Vorige week:
- Iedereen: verslag
- Michiel S en Stefan: lempel ziv verbeterd
- Yani en Senne: Gui verbeterd: offline users + file sharing
- Deze week:
- Senne en Yani: mergen met main
- Lili maakt readme
- Verslag nalezen
- Presentatie afmaken (volgende week dinsdag)
- --> Gui heeft ook slides nodig (eerst hun slides), dan demo, dan rest van technische info (lempelziv, encryption,)
- Inleiding 1min
- Gui + demo 13 min
- lookup functions 3min
- encryption 5 min
- file sharing 4 min
- extra features + future improvements 3min
- Conclusie 1 min
- Blessed automatisch installen
- Lili reserveert lokaal
-Volgende week maandag: 21u presentatie oefenen !!!