Flow chart in Simplchart

SimplChart

Hopp til teknisk beskrivelse

Om prosjektet

SimplChart er en desktop applikasjon som gjør det lettere å lage flowcharts. Den strukturerer seg selv, har enkle menyer, og tillater å legge ved kommentarer i hvert steg. Men, man lager ikke bare separate flowcharts. SimplChart er bygget for å også planlegge hvordan prosjektet skal være strukturert i helhet. En chart kan kategoriseres som en controller, service, eller annet. Gjennom å «linke», kan man vise at en funksjon (chart) tar i bruk en annen funksjon (chart), for å gjenspeile hvordan prosjektet i helhet sitter sammen. Hovedprinsippet er å redusere mengden til man bruker på å strukturere det visuelle, og heller kan bruke den tiden på å planlegge hvordan det skal fungere. Om man jobber i team, kan man enkelt eksportere og importere et prosjekt som json.

Diagram tre

Språk og teknologier

  • Javascript
  • Electron
  • React
  • RealmDB
  • HTML
  • SCSS

Roller og bidrag

  • Alle roller involvert
  • Design
  • Database design
  • Backend system design
  • Frontend utvikling
  • Backend utvikling
Diagram tre
Lag nytt steg
Rediger steg
Velg diagram å lenke til
Se lenket diagram informasjon
Prosjekt-side

Teknisk

Arkitektur

SimplChart er bygget på electron, hvor front-end er drevet av react, og RealmDB blir brukt for lagring. Applikasjonen er delt inn i to prosesser, main og render process. RealmDB kjører utelukkende i main process og kommunikasjon med databaser går gjennom IPC kanaler. Render process har altså ingen direkte tilgang til databasen.

Utfordring og løsning

For å håndtere det, ble det implementert en to-fase resolveringsprosess før data legges inn i databasen. I første fase scannes hele det importerte prosjektet, og alle ID’er blir kartlagt, inkludert relasjoner mellom grafer. I den andre fasen tildeles nye, unike ID’er til alle objekter, og alle fremmednøkler og relasjoner oppdateres. Etter det legges prosjektet, med oppdaterte ID’er til i prosjektet. Det sikrer at ingen ID’er kolliderer og relasjoner forblir intakt uavhengig av grafens komplesitet.

SimplChart bruker RealmDB for lagring av data, hvor alle oppføringer krever en unik ID. Ved import av et prosjekt kunne det oppstå potensielle dataintegritetskonflikter, for eksempel ved å importere et tidligere eksportert prosjekt, da det importere datasettet kunne inneholde ID’er som allerede blir brukt i databasen.

Valg

SimplChart ble utviklet for å dekke et spesifikt behov som eksisterende verktøy ikke løste: et selvstrukturerende diagramverktøy som lar brukeren fokusere på logikk og API-design fremfor visuell organisering. Applikasjonen er bygget som en desktop-applikasjon for å fungere uten nettverkstilgang eller ekstern infrastruktur. Samarbeid håndteres gjennom eksport og import av prosjekter som JSON, noe som også var en medvirkende faktor til valget av RealmDB fremfor SQLite.

Electron ble valgt da det muliggjør distribusjon som en standalone desktop-applikasjon uten å kreve kjennskap til Node.js eller lignende. React ble benyttet som UI-lag på bakgrunn av eksisterende kompetanse, med mål om rask utvikling. Første fungerende versjon ble levert på fire dager, og applikasjonen har siden blitt gradvis utvidet.