Skip to content
This repository has been archived by the owner on Apr 19, 2023. It is now read-only.

omegapointnorge/Salgssystem

Repository files navigation

-- Salgssystem --

Et visuelt verktøy for utviklet for salgsavdelingen i ITverket for at de skal letter holde oversikt over pågående og utførte caser.

Denne README-en er ment som en støtte til nåværende og fremtidige utviklere av systemet.

Nyttige lenker

Slack kanal

GitHub

Når du har tilgang fra ITverket admin vil du kunne se prosjektet hos: AWS

Teknologi

Arkitektur

React app hostet gjennom AWS Amplify.

AWS Amplify (Backend)

  • DynamoDB -> No SQL database basert på JSON input
  • Appsync - hoster GraphQL API-et til prosjektet
  • GraphQL - hente og lagre data i databasen

ReactJS (Frontend)

Vi bruker React for å bygge brukergrensesnittet.

Features

Real time updates via AWS App sync

For å håndere at flere brukere benytter systemet samtidig benyttes AWS app sync subscriptions for å håndtere dette. Her lytter man til GraphQL endepunktene og dupliserer handlingen hos hver client.

Drag-and-drop

Todo ved behov.

Brukerveiledning

Lokal innstallasjon og kjøring

Last ned AWS Amplify CLI. For å benytte CLI må AWS admin tildele et access og secret key. Kjør følgende kommando fra prosjektets root:

amplify configure

Fyll inn access key og region eu-central-1. Etter dette kjør:

amplify pull

Velg alle standardinstillinger.

Kjør følgende kommando for å se om det funker:

amplify status

Nå skal alt være klart for å kjøre prosjetket lokalt. For å kjøre prosjektet lokalt må client kjøres opp. Fra root kjør:

npm install

Deretter kjør:

npm start

Deploy til AWS

Push til git Salgssystem

AWS pipeline vil automatisk fange opp ny merge til f.eks. master og develop branch. Egne feature brances kan brukes for å teste brancher. Dette kan settes opp hos AWS - Pipelines

Første oppsett av AWS

  1. Få bruker i AWS - hør med ansvarlig hos ITverket (per mars 2021: Salah Waisi).
  2. Med adminrettigheter kan du opprette egne secret key og access key, hvis ikke må en med adminrettigheter opprette dette og dele det med deg. Dette bør sendes kryptert. IAM -> Users -> din bruker -> Security Credentials -> Create Access Key. Husk å lagre filen, du får bare sett denne en gang.
  3. Last ned AWS CLI
  4. Kjør kommando: aws configure og følg instruksjonene med å legge inn keys. Bruk eu-central-1 som region. Velg JSON som output.
  5. Ferdig. Test med å starte appen og se om du kan hente fra databasen.

Endre datamodell

Gjøres i schema.graphql.

Eksempel 1: Nytt modellobjekt:

  • Opprett en ny type i schema.graphql, annoter den med @model om man ønser å autogenerere CRUD-operasjoner og tilhørende resolvers. Husk @aws_api_key for at autentisering skal fungere i AWS Amplify og ikke bare lokalt.
  • Kjør amplify push for å deploye endringer. Kode vil nå genereres hos AWS.
  • Kjør amplify pull for å hente ned generert kode.

Eksempel 2: Opprette ny operasjon:

  • Opprett en ny type for operasjonen du ønsker å lage, f.eks. Query, Mutation, eller Subscription. Deretter lager man en ny linje under den typen hvor man definerer operasjonen sin på formen:
parameter navn: return type @annotasjoner F.eks.:
type Mutation {
  moveSalgsCase(input: MoveSalgsCaseInput!): SalgsCase @aws_api_key
}
  • Deretter er det viktig å lage tilhørende resolvers. Man kan få hjelp til å opprette en resovler fra scratch ved amplify console på nett i form av templates og autocomplete. Når man har opprettet denne er det lurt å lagre denne koden i git slik at dette ikke trenger å oppdateres for hver gang man kjører amplify pull. Disse filene legges under ./amplify/backend/api/salgssystem/resolvers.
  • Filene skal ha formatet: Operasjonstype.operasjonsNavn.[res/req].vtl - res eller req basert på om det er response eller request template.

Kjente feil/utfordringer

GraphQL API gir undefined

GraphQL operasjon mangler en resolver. Resolver kan legge til her. Eller den kan lages manuelt.

GrapQL gir "no credentials", men det fungerer lokalt

AWS vet ikke hva den skal autentisere kallet med, man å legge til @aws_api_key på de operasjonene som gir denne feilmeldingen i schema.graphql.

Bidra

Pull requests er velkomne.

Bidragsytere

Lisens

ITverket

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published