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.
Når du har tilgang fra ITverket admin vil du kunne se prosjektet hos: AWS
React app hostet gjennom AWS Amplify.
- DynamoDB -> No SQL database basert på JSON input
- Appsync - hoster GraphQL API-et til prosjektet
- GraphQL - hente og lagre data i databasen
Vi bruker React for å bygge brukergrensesnittet.
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.
Todo ved behov.
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
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å bruker i AWS - hør med ansvarlig hos ITverket (per mars 2021: Salah Waisi).
- 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.
- Last ned AWS CLI
- Kjør kommando:
aws configure
og følg instruksjonene med å legge inn keys. Brukeu-central-1
som region. VelgJSON
som output. - Ferdig. Test med å starte appen og se om du kan hente fra databasen.
Gjøres i schema.graphql
.
- Opprett en ny type i
schema.graphql
, annoter den med@model
om man ønser å autogenerereCRUD-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.
- Opprett en ny type for operasjonen du ønsker å lage, f.eks.
Query
,Mutation
, ellerSubscription
. 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øreramplify 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.
GraphQL operasjon mangler en resolver. Resolver kan legge til her. Eller den kan lages manuelt.
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
.
Pull requests er velkomne.
- Martin Theodor Vasbotten (fra feb 2021 - mars 2021) epost: mtv@itverket.no
- Arne O. Ose (fra feb 2021 - XX 2021) epost: ao@itverket.no