diff --git a/README.md b/README.md index df0ab9e..7970202 100644 --- a/README.md +++ b/README.md @@ -1,32 +1,153 @@ -# IS200-1-2 prosjekt for Nøsted & +# IS200-1-2 prosjekt for Nøsted & -Husk å navngi branches til det du jobber med. +## Applikasjonens oppsett (arkitektur) -## How to use -### Prerequisites: -To make this work, you need to have [Docker](https://www.docker.com/) installed and running on your system. +For at klientens utviklere vet hva slags teknologier de mÃ¥ ha pÃ¥ plass for Ã¥ sette opp +applikasjonen -##### 1. Build then start the docker container with the web application: -`docker image build -t webapp .` -`docker container run --rm -it -d --name webapp --publish 80:80 webapp` +For Ã¥ sette opp applikasjonen trengs følgende teknologier: -##### 2. Start a mariadb container using the localdirectory "database" to store the data: +Docker brukes for Ã¥ bygge og sette opp applikasjonen. -|Bash (Mac and Linux)|Powershell (Windows)| -|--------------------|--------------------| -|`docker run --rm --name mariadb -p 3308:3306/tcp -v "$(pwd)/database":/var/lib/mysql -e MYSQL_ROOT_PASSWORD=12345 -d mariadb:10.5.11`|`docker run --rm --name mariadb -p 3308:3306/tcp -v "%cd%\database":/var/lib/mysql -e MYSQL_ROOT_PASSWORD=12345 -d mariadb:10.5.11`| +MariaDB er en relasjonsdatabase og brukes for Ã¥ lagre dataen. -##### 3. Enter the database and create the database and table for this skeleton: -`docker exec -it mariadb mysql -p` -When prompted enter the password (`12345`), then type or copy in the SQL from [this file](CreateDb.sql) (line by line). -
+Github brukes for å lagre applikasjonens kode og sørger for versjonskontroll. -### Via scripts: -The following takes the above steps and deduce them into scripts. (all the above commands are present in the below scripts). -The scripts allow us to build and deploy our application faster, which can be beneficial when the core concepts of using docker are understood. -|Bash (Mac and Linux)|Powershell (Windows)| -|--------------------|--------------------| -|Run `build.sh` to compile source code and build tomcat docker image.|Run `build.cmd` to compile source code and build tomcat docker image.| -|Run `startDb.sh` to start database|Run `startDb.cmd` to start database| -
+ .NET, applikasjonen er skrevet i .NET 7.0, er dermed mulig det kan oppstå problemer hvis man prøver å kjøre koden med .NET 8.0 +En IDE som støtter .NET, vi har brukt Visual studio. + + + +## Hvordan applikasjonen kjøres (kjøring på Docker, kobling mot database, osv) + +For at klientens utviklere får kjøre applikasjonen på en riktig måte + + +1. Installer Docker på systemet der applikasjonen skal kjøres. + +2. Klon applikasjonens kode fra Github til systemet der den skal kjøres. + +3. Finn hvor prosjekt mappen er plassert og kjør Startdb.cmd (startdb.sh for mac) fra prosjekt mappen. + +4. Bygg applikasjonen med Visual Studio. + +5. Kjør applikasjonen fra Visual Studio med Docker. + + + + + +## Komponenter av applikasjonen (MVC, repo, klasser, osv) + +For at klientens utviklere vet om komponentene som applikasjonen er oppbygget av, hva det gjør og hvorfor de er bygget slik + +Applikasjonen er bygget opp med følgende komponenter: + +### MVC + + MVC er et rammeverk for programvareutvikling som skiller mellom data (model), logikk (controller) og visning (view). + + Model: Representerer dataen i applikasjonen med klasser. + + Controller: Behandler forespørsler fra brukere ved å kommunisere med model og view. + + View: Presenterer dataen til brukerene. + + + +### Klasser + + Klassene ligger i mappen "Model". + + Klassene representerer dataen i applikasjonen. + + For eksempel har klassen " ArbDokViewModel " informasjon om et arbeidsdokument, som ArbDokID, NotatFraMekaniker og Status. + + + +### Entity framework + + Entity framework er et rammeverk som gjør det enklere å bruke dataen fra databasen. + + Mappen "DataAccess" inneholder kode som bruker Entity framework til å kommunisere med databasen. + + Mappen "Entities" består av dataen fra databasen, men representert som objekter slik at det er mulig å enklere jobbe med dataen i koden + + + + + +### Repository + + Repository er et mønster som brukes til å håndtere data fra databasen. + + I applikasjonen brukes repository til å gjøre det enklere å hente, lagre og oppdatere data fra databasen. + + Mappen "Repository" inneholder implementasjonen av repository-mønsteret. + + + +### Database + + Databasen ligger i mappen "Solution items". + + Filen "CreateDb" inneholder oppsettet til databasen med alle tabellene + + Filen "StartDb" sørger for at databasen blir opprettet i Docker og starter CreateDb filen som lager tabellene. + + + + + +## Funksjonaliteter i applikasjonen (det som applikasjonen gjør) + +For at klientens utviklere vet hvilke krav spesifikasjoner ble utviklet som funksjonaliteter i applikasjonen, sånn at de vet hva bør utvikles videre + + + +Applikasjonen har følgende funksjonaliteter: + +### Brukeradministrasjon + + Admin kan opprette, slette og endre rettigheter til brukere (avdelinger). + +### Dokumentbehandling + + Brukere kan opprette, slette og redigere dokumenter. + +### Søk + + Brukere kan søke i dokumentoversikten. + +### Autentisering + + Brukere må logge inn for å få tilgang til applikasjonen. + + + +## Funksjonene kan brukes på følgende måte: + +### Brukeradministrasjon + + Admin kan opprette nye brukere ved å fylle ut et skjema. + + Admin kan slette brukere ved å velge brukeren og klikke på "Slett"-knappen. + + Admin kan endre rettighetene til brukere ved å velge brukeren og klikke på "Gjør til administrator"-knappen. + +### Dokumentbehandling + + Brukere kan opprette nye dokumenter ved å klikke på "Ny ordre"-knappen. + + Brukere kan slette dokumenter ved å velge dokumentet og klikke på "Slett"-knappen. + + Brukere kan redigere dokumenter ved å klikke på et eksisterende dokument. + +### Søk + + Brukere kan søke i dokumentoversikten ved å skrive inn et søkeord i søkefeltet i dokumentoversikten. + + Autentisering + + Brukere kan logge inn ved å oppgi brukernavnet og passordet sitt.