Lunarbox - Educational - București Buzău - Lucrari 2020 Online

Informatii generale

Descriere

Lunarbox este un mediu de programare vizuala pentru incepatori ce vor sa invete programarea functionala.

Cateva filozofii de baza:

  • Totul este typesafe, iar utilizatorul nu trebuie sa specifice nici un tip - compilatorul isi da seama automat de orice
    astfel incat utilizatorul are o intuitive vizuala pentru cea ce este conectabil si ce nu
  • Evaluare in timp real - utilizatorul poate vedea valoarea fiecarui nod imediat dupa orice modificare
  • Impartirea proiectelor in functii - utilizatorul poate refolosii orice structura cu ajutorul functiilor.
  • Invatarea din exemple - Fiecare utilizator are acces la orice moment la exemplele create de admini.

Tehnologii

Proiectul a fost scis in purescript, un limbaj de programare pur functionala cu sintaxa aproape indentica cu haskell dar care poate fi compilat in javascript.

Pentru rendare web am folosit [halogen)(GitHub - purescript-halogen/purescript-halogen: A declarative, type-safe UI library for PureScript.), o librarie care extinde arhitectura elm cu suport pentru mai mult de 1 component, alegerea orcarui monad pentru rularea interfatei si multe altele

Pentru pacakge managementul dependentelor de pe npm am folosit pnpm - un cli care rezolva multe din problemele actuale aflate in npm, iar pentru (package managementul) dependentelor pentru purescript am folosit spago.

Pentru bundlingul aplicatie am folosit parcel iar pentru stiluri am folosit scss

Pentru inferarea tipurilor am implementat algoritmul Hindley Milner de inferare a tipurilor impreuna cu un sistem care transforma programele vizuale intr-o expresie lineara.

Partea de back-end este scrisa in typescript, ruleaza in nodejs folosind koa si knex impreuna cu postgresql

Proiectul foloseste hygen pentru creerea de templateuri ce pot fi refolosite.

Pentru a recompila partea de purescript si back-endul la fiecare schimbare am folosit nodemon

Proiectul respecta standardul all-contributors

Pentru CI & CD am folosit semantic-release impreuna cu github-actions

Cerinte sistem

Versiune recenta de chrome sau firefox

Realizatori

Adriel Matei

  • Scoala: Liceul Teologic Adventist “Stefan Demetrescu”
  • Clasa: 10
  • Judet: București
  • Oras: Bucuresti

George Dragomir

  • Scoala: Liceul Teoretic “Ștefan cel Mare”
  • Clasa: 10
  • Judet: Buzău
  • Oras: Râmnicu Sărat

Screenshots

2 Likes

hehe nice

1 Like