hakiergrzonzo / kronikarz Goto Github PK
View Code? Open in Web Editor NEWIO
License: GNU General Public License v3.0
IO
License: GNU General Public License v3.0
Stworzenie struktury drzewa
Stworzenie struktury elementu drzewa
Stworzenie odpowiednich endpointów dla tej struktury (CRUD)
Co:
Zainstalować odpowiednie pakiety, przygotować routing, stworzyć konfigurację remixa, stworzenie fav icon
Połączyć z backendem
design: #29
blocked by #26
Projekt jest w TypeScript a Vis-network jest w js i nie ma typów wiec trzeba sprawić aby zadziałał w naszym projekcie
Należy znaleźć najlepszy sposób na rysowanie drzew z różnymi relacjami w przeglądarce.
Możliwe podejścia:
Co:
Należy stworzyć funkcjonalność pozwalającą na eksportowanie drzew do formatów PDF, HTML lub innych.
Jeśli chodzi o tworzenie prezentacji, to z Kamilem mamy dzikie skrypty eksportujące markdown
do beamera.
Ogólnie lepiej byłoby to trzymać w folderze docs/
na githubie, ale możemy pierwsze szkice robić w iszusie:
Projekt jest/będzie złożony z kilku kontenerów docker'a, w celu ograniczenia problemów wynikających z różnych środowisk developerskich (Windows, Ubuntu, Arch, MacOS) jak i produkcyjnych (Arch). Tworzenie rozwiązań kontenerowych oraz użycie platform takich jak docker hub pozwala na łatwe wprowadzenie systemu ci/cd
w projekcie za pomocą narzędzia github actions
. Wybór ten jest argumentowany dotychczasowymi doświadczeniami w projektach uczelnianych jak i własnych.
Projekt będzie głównie pisany w językach typescript
oraz python
. Pierwszy z nich został wybrany ze względu na zapewnianie systemu typu i dokumentacji z niego wynikającej, drugi został wybrany ze względu na doświadczenie ekipy programistycznej w tworzeniu podobnych rozwiązań.
Wybór frameworka frontendowego został głównie podyktowany ciekawością. Mimo iż stan gotowości narzędzi wokół solid.js
pozostawia trochę do życzenia, oraz nikt w zespole nie ma w nim doświadczenia, to perspektywa rozwiązania wielu problemów codziennego chleba reactowego, z którym mamy do czynienia w pracy, była zachęcająca.
Wybór frameworka backendowego miał kompletnie inny charakter, FastAPI jest sprawdzonym dla nas rozwiązaniem, które dobrze wspiera programistów w ich pracy. W porównaniu z konkurencją, fastapi generuje automatycznie dokumentację openapi
, zachowując prostotę flaska. Jednocześnie jest w stanie robić to bez obciążenia boilerplatem z którym boryka się django, wraz ze swoim MVC
.
Nasz wybór bazy danych jest bardzo ryzykowny. SurrealDB zawiera bardzo atrakcyjny mix tradycyjnego prawie że SQL
oraz funkcjonalności grafowych. Pozwala nam to uniknąć problemów z joinami w asynchronicznym środowisku, jakie posiada tradycyjna baza relacyjna z typowym ORM sqlalchemy
.
SurrealDB pozwala na łatwe przechowywanie danych bez określonej schemy
, co jest trudne w tradycyjnych bazach relacyjnych, na przykład w wcześniej używanym przez nas postgreSQL
.
Dużym zagrożeniem, z którym musieliśmy już walczyć jest słaba jakość lub nie istnienie narzędzi dla surrealDB. Klient pythonowy wymagał już zgłaszania błędów oraz poprawek do maintainerów, a pisanie własnego ORM bywa ciekawe. Miejmy nadzieje że narzędzia które już tworzymy pozwolą innym na rozwiązanie ich problemów, gdyż zamierzamy wyodrębnić nasz surreal_orm
kiedy będzie gotowy jako osobny projekt.
SurrealDB
https://surrealdb.com/docs oraz inna bezpośrednia komunikacja z maintainerami klienta surreal.py
.połączenie z backendem
Założenia:
-Obsługa sytuacji błędnego loginu/hasła
-Przycisk "Zaloguj" pojawi się dopiero po uzupełnieniu obu pól
-Ograniczenie liczby znaków loginu i hasła tak, by nie wyszły poza wyznaczone pola
-Po kliknięciu w logo cofnie nas do ekranu głównego
-Po nieaktywności dłuższej niż 20sekund cofnie nas do ekranu głównego
Należy stworzyć mockupy interfejsu graficznego aplikacji w dowolnym programie graficznym (paint/krita/figma).
W szczególności należy ująć następujące ekrany:
Należy skupić się na wykorzystaniu komponentów z https://suid.io/
Co:
Należy dodać następujące funckcjonalności do naszego ORM surrealDB:
Wymagane dane:
Typy danych:
data
string
enum
boolean
liczba
plik
czy może być nullem
TBD
Zaznajomienie się ze stosem technologicznym wykorzystywanym w projekcie:
Należy stworzyć funkcjonalność pozwalającą na zapisywanie drzew (relacji, osób oraz plików) w formacie JSON.
Wybrane logo białe,
Powinno być co najmniej:
CRUD i endpointy do tego
Opisać strukturę projektu w readme
Stworzyć plik makefile do najbardziej potrzebnych komend
Stworzenie komponentu który będzie odpowiedzialny za edycje komponentów drzewa oraz ich dodawanie i usuwanie
(na razie ustalono że wyświetli się z boku)
RightClick - dodawanie, edycja, usuwanie (relacji / wezła)
Originally posted by @Havystar in #51 (comment)
Należy spisać potrzebne funkcjonalności (nie tylko z kartki) w pseudo epiki/iszusy.
Możliwe rzeczy:
Do tego CRUD i ednpointy
Stworzyć design dla #19
Należy zdeployować aplikacje pod domeną https://dev.grzegorzkoperwas.site
przejście do 2 podstron: logowanie, rejestracja
design: #37
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.