Code Monkey home page Code Monkey logo

kronikarz's People

Contributors

hakiergrzonzo avatar havystar avatar pedrevsky avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

kronikarz's Issues

Stworzenie systemu zapisu obrazkøw

wymagania:

  • zmniejszanie rozmiarøw obrazkøw w celu tworzenia miniaturek
  • ujednalicanie formatøw obrazkøw
  • dodanie spisu obrazkow do bazy danych
  • dodanie cache'a do obrazkow

Postawienie szkieletu aplikacji

Co:

  • Napisać docker-compose
  • Napisać dockerfile
  • stworzyć szkielet solida
  • Postawić bazę danych z persystencją
  • Postawić podstawowe fastapi

Stworzenie ekranu logowania

Zainstalować odpowiednie pakiety, przygotować routing, stworzyć konfigurację remixa, stworzenie fav icon
Połączyć z backendem

design: #29

Tech Stack & Project Analysis

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:

Metodologia:

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.

Języki programowania i frameworki

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.

Baza danych

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.

Uwarunkowania:

  • Zależności OpenSource, projekt na razie na licencji GPL nie jest problemem.
  • Inne rozwiązania na rynku.
    • Mackiev Family Tree Maker 2019:
      • Zalety:
        • Wbudowane narzędzia do edycji zdjęć
        • Integracja z serwisem Ancestry.com
        • Wsparcie dla innych danych o przodkach, takie jak wizualizacja miejsc zamieszkania na mapie.
        • Wizualizacja pochodzenia kolorami.
        • Dokumentacja
        • Aplikacja klasyczna z wsparciem dla przechowywania niektórych wybranych danych w chmurze.
      • Wady:
        • Duży koszt (80 funtów → 439zł!)
        • Brak wsparcia dla systemu GNU/Linux
    • Lucidchart:
      • Zalety:
        • Oferta z darmowym planem.
        • Aplikacja z wsparciem dla wielu użytkowników
        • Różne wzorce
      • Wady:
        • Nie oferuje nic poza edytorem grafów.
        • Ograniczone miejsce dla przechowywania zdjęć.
        • Brak jakiegokolwiek sposobu na interakcje z danymi zawartymi w drzewie rodzinnym.
    • Ancestry.com
      • Zalety:
        • Dostęp do danych z testów genetycznych oraz innych źródeł (manifesty statków z Ellis Island, Karty rejestracji dla Żydów oraz Polaków zamieszkałych w Krakowie pod okupacją niemiecką, stare książki telefoniczne itp.)
        • Prosty interfejs
        • Rozwiązanie z darmowym planem.
      • Wady:
        • Dodanie własnych danych sprawia że są one dostępne dla innych członków (bardzo rozszerzonej) rodziny.
        • Prosty interfejs nie pozwala na tworzenie ładnych drzew.
        • Dane są skupione głównie na stanach zjednoczonych
  • Literatura:
    • Dokumentacja SurrealDB https://surrealdb.com/docs oraz inna bezpośrednia komunikacja z maintainerami klienta surreal.py.
    • Kubernetes - Tworzenie systemów rozproszonych, Kelsey Hightower, Brendan Burns, Joe Beda.
    • Fireship.io - filmiki z najnowszymi frameworkami
    • The Art of Clean Code - Christian Mayer

Ekran logowania

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

[GRAPH] Stworzenie mockupów aplikacji

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:

  • Strona główna (landing page)
  • Strona rejestracji
  • Strona logowania
  • Strona wyboru/stworzenia drzewa
  • Wygląd drzewa

Należy skupić się na wykorzystaniu komponentów z https://suid.io/

Skonfigurowanie fastapi_users

Co:

  • Napisać boilerplate dla fastapi_users
  • Spróbować podłączyć fastapi_users do surrealDB
    • Jeżeli się nie uda to użyć postgresa + sqlalchemy

Stworzenie podstawowej struktury liścia

Powinno być co najmniej:

  • Data smierci, (can be null)
  • Data urodzenia, (can be null)
  • Zdjęcie (can be null)
  • Imie
  • Nazwisko (can be null)
  • dodatki: dodatkowym atrybuty mają być trzymane jako dict (może on być rozszerzalny)

CRUD i endpointy do tego

Komponent edycji drzewa

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)

Ekran Startowy

Założenia:
-Po kliknięciu przycisku "Logowanie" przenosi nas do ekranu logowania #29
-Po kliknięciu przycisku "Rejestracja" przenosi nas do ekranu rejestracji #31

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.