Fenomenal/Intranett

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:

 

For å administrere databasen direkte

IKKE gjør dette om ikke veldig nødvendig. Gå til denne portalen for å administrere (django admin):

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.

  1. git clone git@github.com:markant-norge/markant-intranet-backend.git ~/intranett-backend
  2. cd intranett-backend
  3. 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
    

     

  4. Gjør endringer og TEST disse selvsagt på din dev maskin med django sin innebygde server..
  5. Push endringene til github.
  6. 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.
  7. Sjekk eventuelt aws beanstalk sitt kontrollpanel og last ned logs om noe feilet.

 

Hvordan kjøre deploy på frontend?

  1. git clone git clone git@github.com:markant-norge/markant-intranet-frontend.git ~/intranett-frontend
  2. cd ~/intranett-frontend
  3. Installer NPM depenendencies.
    npm install
  4. Installer bower dependencies.
    bower install
  5. Kjør opp utviklingsserveren
    ember serve
  6. Gjør så endringer og test disse..
  7. Deploy endringene:
    ember deploy production
  8. Gå inn i AWS konsollet og kjør en CACHE INVALIDATION på EDOY4Y30VT4NO i AWS Cloudfront. Som object paths skriver du bare * .
    intranett-frontend-cache-invalidation-EDOY4Y30VT4NO
  9. 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: