Informatii generale
- Categorie: Educational
- Judetul: București Buzău
- Surse: GitHub - lunarcast/lunarbox: Visual functional programming language
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