readme.md 3.41 KB
Newer Older
Sander Elias Høyland's avatar
Sander Elias Høyland committed
1
## Rød Tråd
Sander Elias Høyland's avatar
Sander Elias Høyland committed
2

3
Rød Tråd er et sosialt media hvor strikkere og bedrifter kan dele prosjekter, oppdateringer og bilder samt følge med på hva andre holder på med.
Sander Elias Høyland's avatar
Sander Elias Høyland committed
4 5 6

## Bakgrunn

Sander Elias Høyland's avatar
Sander Elias Høyland committed
7
Rød Tråd er et prosjekt som gjennomføres av studenter på NTNU som har faget programvareutvikling. Målet er at studentene skal lære hvordan
Sander Elias Høyland's avatar
Sander Elias Høyland committed
8
man kan jobbe sammen i et team for å lage et programvareprodukt, og hvordan vi kan bruke SCRUM-prosessen for å bistå til dette.
Sander Elias Høyland's avatar
Sander Elias Høyland committed
9

Sander Elias Høyland's avatar
Sander Elias Høyland committed
10 11 12 13 14 15 16
## Versjonsstatus
Build: Passing

## Kodestil
Codestyle: PEP8

## Skjermbilder
Sander Elias Høyland's avatar
Sander Elias Høyland committed
17 18
# ![Startpage](rodTraa/static/img/startpage.png)
# ![Feed](rodTraa/static/img/feed.png)
Sander Elias Høyland's avatar
Sander Elias Høyland committed
19

Sander Elias Høyland's avatar
Sander Elias Høyland committed
20 21
## Tech/rammeverk brukt

Sander Elias Høyland's avatar
Sander Elias Høyland committed
22 23
Programmet er skrevet i Python i rammeverket Django. Vi bruker MYSQL som backend database. Vi bruker også Pillow-biblioteket til bildehåndtering, 
Bootstrap-biblioteket til design og layout og applikasjonen Django Crispy Forms til forms.
Sander Elias Høyland's avatar
Sander Elias Høyland committed
24 25 26 27 28 29 30 31 32 33

## Egenskaper

Programmet vårt gjør det mulig for ulike mennesker som alle er interessert i strikking å holde hverandre oppdatert på hva de holder på med, har planer om 
og har gjort til nå. Det legger til rette for å dele innlegg med tekst og bilder, se andres innlegg, like innlegg og søke opp andres profiler for å se på dem.
Programmet legger også opp til kommunikasjon mellom enkeltpersoner og bedrifter, ved at bedrifter som har strikkere som målgruppe kan legge ut oppskrifter 
og arrangementer som strikkerne på plattformen kan se, bruke og delta på.

## Installering

Sander Elias Høyland's avatar
Sander Elias Høyland committed
34 35 36 37
Vi har brukt utviklingsverktøyet Pycharm, og kommer derfor til å vise hvordan utviklingsmiljøet kan settes opp i dette.
Programmet krever at følgende programmer er installert:

Python (Vi bruker versjon 3.8.1)
Sander Elias Høyland's avatar
Sander Elias Høyland committed
38

Sander Elias Høyland's avatar
Sander Elias Høyland committed
39
pip (for installasjon av flere av de resterende programmene)
Sander Elias Høyland's avatar
Sander Elias Høyland committed
40

Sander Elias Høyland's avatar
Sander Elias Høyland committed
41
Django (Installert ved hjelp av pip)
Sander Elias Høyland's avatar
Sander Elias Høyland committed
42

Sander Elias Høyland's avatar
Sander Elias Høyland committed
43
Django Crispy Forms (Vi installerte denne i Project Interpeteren i Pycharm)
Sander Elias Høyland's avatar
Sander Elias Høyland committed
44

Sander Elias Høyland's avatar
Sander Elias Høyland committed
45
Pillow (Installert gjennom Pycharm Project Interpreter)
Sander Elias Høyland's avatar
Sander Elias Høyland committed
46

Sander Elias Høyland's avatar
Sander Elias Høyland committed
47 48 49
MYSQLclient (Installert ved hjelp av pip, deretter installert gjennom Pycharm Project Interpreter)

Deretter kan koden klones fra GitLab, og en forbindelse mellom Pycharm og GitLab kan opprettes gjennom Pycharms innebygde git-verktøy.
Sander Elias Høyland's avatar
Sander Elias Høyland committed
50

Sander Elias Høyland's avatar
Sander Elias Høyland committed
51
Databaseinformasjon er spesifisert i settings-filen. Programmet er konfigurert til å bruke NTNU-databasen til Sander Høyland.
Sander Elias Høyland's avatar
Sander Elias Høyland committed
52

Sander Elias Høyland's avatar
Sander Elias Høyland committed
53 54 55 56 57 58 59 60 61 62 63
Vi har ikke fått til å installere og bruke MYSQLclient på alle PCene på gruppa, så vi har en branch med en lokal SQLite-database som
kan brukes hvis det oppstår problemer med MSQLclient. De to branchene skal være like med unntak av databasen. For å opprette SQLite-database må
følgende kodelinjer kjøres:
```
python manage.py makemigrations
```
og deretter
```
python manage.py migrate
```

Sander Elias Høyland's avatar
Sander Elias Høyland committed
64 65
For å kjøre programmet, kjører man følgende kodesnutt i den øverste RodTraa-mappen: 
```
Sander Elias Høyland's avatar
Sander Elias Høyland committed
66
python manage.py runserver
Sander Elias Høyland's avatar
Sander Elias Høyland committed
67 68 69
```
Deretter kan programmet åpnes i nettleseren på localhost:8000

Sander Elias Høyland's avatar
Sander Elias Høyland committed
70
## Tester
71

72
Det er skrevet enhetstester for å teste programmet. Se [oversikt over kodekvalitet](https://gitlab.stud.idi.ntnu.no/tdt4140-2020/58/-/wikis/Home/Oversikt-over-kodekvalitet) på wikien for mer utfyllende informasjon om testingen av prosjektet. Alle enhetstestestene i programmet kjøres ved:
73 74 75 76

```
python manage.py test
```
Sander Elias Høyland's avatar
Sander Elias Høyland committed
77

Sander Elias Høyland's avatar
Sander Elias Høyland committed
78
## Referanser
Sander Elias Høyland's avatar
Sander Elias Høyland committed
79

Sander Elias Høyland's avatar
Sander Elias Høyland committed
80
Vi har tatt mye inspirasjon fra YouTube-serien til Corey Schafer om Django (https://www.youtube.com/user/schafer5)
Sander Elias Høyland's avatar
Sander Elias Høyland committed
81
Vi har også brukt bøkene Software Engineering av Ian Sommerville og Scrum and XP from the Trenches til veiledning underveis i prosjektet