En intranettløsning bygget som en SaaS. Det vil si at det er flere kunder enn bare markant som bruker intranettet. Intranettet kan leveres som en tjeneste/produkt til andre som ønsker intranettfunksjonalitet. Det finnes eget produktark over hva intranettet kan levere.
Teknologi stack
Server: AWS / Elastic Beanstalk + S3 for frontend ( SINGLE PAGE APPLICATION )
Språk: Django for backend (python). Og EmberJS som frontend.
Backend-rammeverk: Django 1.9
Frontend-rammeverk: EmberJS 2.X
Databasemotor: Postgresql
Databasenavn: ebdb / elasticbeanstalk som har kontroll på den.
Integrasjoner: – ingen –
Deploymentstrategi:
- Backend:
eb deploy - Frontend:
ember deploy production
Git-repo (backend): https://github.com/markant-norge/markant-intranet-backend
Git-repo (frontend): https://github.com/markant-norge/markant-intranet-frontend
Funksjonalitet
Intranettet tilbyr en egen portal for firmaer. Hvert firma kan ha flere funskjoner med flere brukere knyttet til firmaet.
Følgende funksjoner finnes i fenomenal:
- Brukeradministrasjon
- Brukergruppe og rettighetsstyring
- Arrangementer
- Nofikasjoner via e-post og sms
- Nyheter
- Informasjonsportal
Oppretting av nye intranett for firma
For å opprette nytt intranett kan du enkelt bruke veiviseren:
- https://api.fenomenal.no
Brukernavn og passord ligger i last pass.
For å administrere databasen direkte
IKKE gjør dette om ikke veldig nødvendig. Gå til denne portalen for å administrere (django admin):
- https://api.fenomenal.no/admin
Brukernavn og passord ligger i last pass
Men her kan man f.eks.
- Sette nytt passord for alle brukere om de har glemt det.
- Lage nytt firma uten å bruke veiviseren
- Osv.
Testintranett
Noen ganger trenger du å teste funksjonalitet for enkel debugging. Dette kan du gjøre live med test intranettet som er et eget intranett akkurat som markant sitt intranett.
Login til testintranettet:
ADMIN BRUKER
Brukernavn: petter
Passord: petter321
VANLIG BRUKER / ANSATT
Brukernavn: petkje1
Passord: petter321
Her kan du teste hva du vil uten at det går ut over andre. Du bør kanskje logge inn i Django admin for å endre e-posten slik at du får e-post på riktig sted.
Hvordan kjøre deploy på backend?
Du må først installere L:\Ressurser\Magento2\Deployment\SSH-kobling\markant-intranet nøklene i ~/.ssh mappen på din linux maskin.
- git clone git@github.com:markant-norge/markant-intranet-backend.git ~/intranett-backend
- cd intranett-backend
- eb init:
petterk@petter-virtual-development ~/intranett-backend $ eb init Select a default region 1) us-east-1 : US East (N. Virginia) 2) us-west-1 : US West (N. California) 3) us-west-2 : US West (Oregon) 4) eu-west-1 : EU (Ireland) 5) eu-central-1 : EU (Frankfurt) 6) ap-south-1 : Asia Pacific (Mumbai) 7) ap-southeast-1 : Asia Pacific (Singapore) 8) ap-southeast-2 : Asia Pacific (Sydney) 9) ap-northeast-1 : Asia Pacific (Tokyo) 10) ap-northeast-2 : Asia Pacific (Seoul) 11) sa-east-1 : South America (Sao Paulo) 12) cn-north-1 : China (Beijing) 13) us-east-2 : US East (Ohio) (default is 3): 4 Select an application to use 1) ms-nobi 2) ms-vertebrae 3) ms-dampshop 4) ms-partech 5) ms-cardshop 6) ms-frankpl 7) m2-provision 8) magento2-motorsykkeldeler 9) ms-playground 10) ms-iseng 11) markant-intranet-backend 12) markant-utvalg 13) [ Create new Application ] (default is 13): 11
- Gjør endringer og TEST disse selvsagt på din dev maskin med django sin innebygde server..
- Push endringene til github.
- Kjør «eb deploy» for å deploye endringene til produksjon. Liten nedetid på fenomenal må da påregnes. Etter 15 min skal den være oppe igjen.
- Sjekk eventuelt aws beanstalk sitt kontrollpanel og last ned logs om noe feilet.
Hvordan kjøre deploy på frontend?
- git clone git clone git@github.com:markant-norge/markant-intranet-frontend.git ~/intranett-frontend
- cd ~/intranett-frontend
- Installer NPM depenendencies.
npm install
- Installer bower dependencies.
bower install
- Kjør opp utviklingsserveren
ember serve
- Gjør så endringer og test disse..
- Deploy endringene:
ember deploy production
- Gå inn i AWS konsollet og kjør en CACHE INVALIDATION på EDOY4Y30VT4NO i AWS Cloudfront. Som object paths skriver du bare * .
- Etter hvert kommer den nye versjonen til å vises ( når cachen er slettet fra alle edge locations i CDN nettverket…).
Arkitektur
Fenomenal er laget som en Single page application. Selve web-appen serveres direkte fra AWS S3. Og apiet er hostet på api.fenomenal.no som ligger i Elastic Beanstalk (enkelt å kjøre deploy osv.).
Se README filer under de 2 repositories som finnes, der ligger litt instrukser.
Fremtidige idéer til oppdateringer
- Bytte SMS gateway til AWS sin. Grunnen til at vi ikke kunne bruke AWS sin SMS gateway var at de ikke hadde denne tilgjengelig i EU-WEST regionen. Nå er den tilgjengelig og kan brukes. Ved å bruke AWS sin SMS service, holder man flere tjenester knyttet i amazon. Per i dag brukes PSWIN.COM . Før man gjør dette bør man se om det er dyrere for SMS ved å bruke AWS eller billigere.
- Fikse på layouten, den er veldig bootstrap aktig og ser ikke så veldig fresh ut.
Changelog / viktige oppdateringer
26.04.2017 – fikset bug med notifikasjonssystemet
Fikset bug som gjorde at notifications ikke ble sendt. Dette grunnet at Celery hadde plutselig stoppet å kjøre i bakgrunnen på EC2en. 2 årsaker til bug. Årsak til buggen var [5e345ae0e0f15a63eb050f33e869efdf74b2558f], der celery ble oppgradert fra 3.X til 4.X, en farlig operasjon som gjorde at celery crashet. Det var også enda en årsak, der det var et % tegn. i environment variabelen, se første commit på relaterte fiks.
Relaterte fiks:
- c1f344381da9bc9a48281c64f76139827a309848
- 4d6a3f07fba201e84140aa9df083807cabc02916
- 3131216acd9f846b3ac98fd97e2b797b461d7205
- 85451eb1b5004d5fb87d5c5fb2ce12dd6320f335
- 0837c1301513cf227b1a212ebfe0f639250a2f85