Coder Social home page Coder Social logo

baraja-core / cms Goto Github PK

View Code? Open in Web Editor NEW
15.0 3.0 3.0 1.95 MB

🛠️ Simple smart CMS for Nette and Vue.js

Home Page: https://baraja.cz/cms

License: MIT License

PHP 26.51% HTML 1.10% CSS 1.00% JavaScript 61.18% Latte 10.21%
nette baraja-cms vue administration-interface vue-components articles sense cms content user

cms's People

Contributors

dependabot-preview[bot] avatar filipjakub avatar janbarasek avatar langriklol avatar stralkaj avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

cms's Issues

Dark mode

Detect:

if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
    // dark mode
}

To watch for changes:

window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', e => {
    const newColorScheme = e.matches ? "dark" : "light";
});

Editable annotation crashes application

Version: latest

Bug Description

When running composer update or composer dump the command appropriate for running application crashes due to missing import.
image

Steps To Reproduce

Run composer dump on latest version of package

Expected Behavior

Not to crash application

Possible Solution

Maybe consider refactoring as PHP attribute

Nástěnka

Cílem tohoto úkolu je zpracovat obecný návrh dashboardu (zatím jako grafický návrh, o kterém se bude diskutovat).

Nyní je na dashboardu panel pro psaní příspěvků a sdílení s týmem. Tento modul chceme zachovat, abychom podpořili komunikaci v rámci týmu. Každý příspěvek může mít komentáře, které se umí stromově zanořovat.

V rámci dashboardu ale chceme umožnit vkládat vlastní widgety a pluginy. Zkus vymyslet, jak by mohl obecný widget vypadat, jakým způsobem se bude do stránky vkládat, jak bude fungovat jejich organizace (pořadí, poloha, ...) a podobně. Můžeme jít buď směrem Seznam homepage, nebo widgetů na iPhonu.

Demo:

Snímek obrazovky 2021-08-15 v 13 20 10

Předchozí poznámky:

  • Možnost pinovat příspěvky (bool)
  • Komentáře
  • Likování
  • Vlastní moduly - musí definovat plugin
  • Kontakty na členy týmu - možnost u userů nastavit roli
  • Zvážit: Ukládat jako denormalizovaná data

Settings

Add common settings interface.

Hlavní menu

V rámci CMS používáme základní design pro levé menu, kde jsou dostupné všechny aktivní pluginy. Cílem tohoto úkolu je připravit nový moderní design, který zapadá do koncepce celého CMS a vypadá moderně.

Současný design

Snímek obrazovky 2022-02-25 v 10 31 56

Akceptační kritéria

  • Název pluginu
  • Ikonka pluginu (může neexistovat)
  • Nakreslit aktivní (musí být snadno rozpoznatelné, kde zrovna jsem) a neaktivní variantu
  • Hover varianta (při najetí myší) musí být rovnou vidět
  • V debug mode se zobrazuje aktuálně nastavené pořadové score každé položky
  • Připravit rovnou i tzv. odznak na aplikaci, který uživateli ukáže, že se v aplikaci něco děje a kolik (inspirace z červeného labelu na iPhone)

Aktivní debug režim s zobrazením hodnocení pluginů

Snímek obrazovky 2022-02-25 v 10 36 29

Inspirace z iPhone, jak řešit aktivní notifikaci na položce menu

Snímek obrazovky 2022-02-25 v 10 37 44

Jak menu řešit?

Přemýšlel jsem nad tím hodně a nevím. Možná bych šel do designu ve stylu nového Gmailu:

Snímek obrazovky 2022-02-25 v 10 39 02

Požadavky na použitelnost

Menu musí být maximálně použitelné. Pamatuj vždy na jednoduchost a jednoznačnost všech stavů pro všechny uživatele v různých kontextech. Vybraná položka musí být dobře vidět na všech typech zařízení, i na levném notebooku na přímém slunci. Zároveň nesmí položky příliš vizuálně vyrušovat uživatele.

Velmi brzy budeme CMS přepisovat do plně responsivní varianty a design menu musí být připraven i pro mobilní zařízení. Zkus na to při návrhu myslet.

Děkuji.

Notification center

Připrav grafický návrh pro notifikační centrum v CMS.

Libovolný modul může poslat libovolnému uživateli notifikaci. Notifikace se musí agregovat s možností je zobrazit, spravovat a mazat. Mazání by mělo fungovat i hromadně.

Všechny notifikace by měly vypadat stejně s customizovatelnou ikonkou, názvem, textem notifikace. Volitelně může obsahovat obrázek a akční tlačítka. Notifikace musí jít prokliknout do detailu (přes akční tlačítko).

Příklad, jak to řeší Mac:

Snímek obrazovky 2021-08-15 v 13 22 50

  • Verejny api endpoint pro zjisteni posledni verze cms
  • Automaticka diagnostika systemovych prostredku (upload limit a podobne) a kdyz bude spatne nebo malo, ukazat notifikaci

Disk capacity

V rámci nastavení CMS by se hodilo uživateli zobrazovat, jak je na tom kapacitně jeho disk na serveru.

Zkus připravit třídu, která bude poskytovat informace o discích a jakou mají kapacitu. Představuji si to tak, že zavolám něco jako:

Disk::getOverview();

A jako response dostanu pole dostupných disků a kapacity. Pozor, pole disků se liší podle operačního systému (na Windows jsou disky A-Z, na Linuxu se tzv. mountují).

Možná response:

[
   // disk => [dostupná kapacita, použitá, celková],
   'c' => ['available' => int, 'used' => int, 'total' => int],
]

Pomocné funkce:

  • free space: disk_free_space()
  • total space: disk_total_space()
  • Add disk total space detection by project root dir

Na Windows teoreticky takto (nevyzkoušeno):

function getDisks(): array
{
    if (str_contains(PHP_OS_FAMILY, 'WIN')) {
        $return = [];
        foreach (range('A', 'Z') as $disk) {
            $return[$disk] = disk_total_space($disk . ':');
        }

        return $return;
    }

    return [
        '/' => disk_total_space('/')
    ];
}

Login sessions management

Implement custom logic for session management. Use existing table to store history.

In the account detail view:

  • List of actively logged sessions that have not been marked as logged out.
  • Ability to see which sessions are currently online (including propagating status to other application layers)
  • A button to log out all sessions other than the acoustic one
  • Button to log out all sessions, including the current one
  • Automatic logout of all sessions if the user is locked out

Sessions must be authenticated in keep-auth requests. If the session is no longer valid, automatically log the user out.

Allow administrators to log out sessions of all other users (security).

Activity on this account

Add summary table with account activity based on sessions data.

image

If more than one session is active, show the information in the footer of all pages in the admin. Verify with ajax at least once a minute.

Snímek obrazovky 2022-01-31 v 17 41 55

Fail to ban

Implement service and move firewall checking from login process.

CMS users - role

Definovat systém rolí a popisu uživatele

  • Lidsky napsaná role do stringu
  • Popis uživatele
  • Reporting to - relace na parent usera, kdo je nadřízený
  • Týmy - relace uživatele na tým pro lepší vykreslování struktury společnosti a pochopení, s kým kdo spolupracuje
  • Možnost vykreslit hierarchii uživatelů v projektu
  • Obecna komponenta pro zobrazeni uzivatelskeho avatara + jmeno -> po najeti hover okno s popisem uzivatele a hierarchii jako ve webovem Outlooku

Zprovoznit translator na frontendu

  • Jak jsem vyházel přebytečné knihovny, tak přestal fungovat translator na frontendu
  • Prosím citlivě to zprovniznit, tzn. přidat jen nezbytné knihovny, ověřit aby tam nebyly 2x a aby se načítaly jen pro adminy, ne pro návštěvníky

Install proces

Zkus projít celý proces instalace CMS do nového projektu, jestli dává všechno smysl.

Pole, kde si nebudeš jistý, zkus více popsat.

Zamysli se nad designem a možnostmi pokročilejší grafiky, aby to vypadalo víc advance.

Díky.

Instalační proces

Úkolem je zjednodušit celou instalaci.

Debugnout celý proces registrace Baraja CMS do cloudu + informace o nutnosti vyčkání na mail + následné přihlášení do účtu, až když se aktivuje link

Version and update checker

Show date of last update. Check for updates by call CDN API endpoint (not if user is offline).

When update is ready show info on dashboard for all admins.

Lock screen

I often need to lend a computer to a colleague for a moment and quickly log out of my account. Allow me to set a session lock. Show the active logged in user and allow to enter the password directly to open access.

It will also automatically switch the user to lock mode if they have not been active for more than 3 days.

Náhradní kódy

Při založení ověření OTP vygenerovat sérii náhradních kódů, které donutíme uživatele bezpečně uložit + potvrdit uložení.

Náhradní kódy jsou jediná cesta, jak získat přístup k vašemu účtu, pokud ztratíte přístup k vašemu zařízení a tím pádem nemůžete získat kódy dvoufázového ověření.

Global CMS settings

Cílem tohoto úkolu je vymyslet vzhled a ovládání globálního nastavení CMS i celé aplikace/webu/e-shopu.

Nastavení bude koncipováno jako modální okno, které se otevře po kliknutí na tlačítko na admin baru.

Nyní se zobrazuje takto:

Snímek obrazovky 2021-08-13 v 10 41 42

Cílem tohoto úkolu je vymyslet a připravit vzhled tohoto okna.

Na co nezapomenout:

  • Nastavení musí fungovat obecně, tj. na hlavním pohledu budou vidět dostupné kategorie nastavení, které má každý projekt jinak
  • Ideálně bych v rámci nastavení zobrazoval levé menu, kde bude seznam pluginů, které umožňují vnitřní nastavení. Hodně se tím zjednoduší návrh a bude zřejmé, co vše mohu nastavovat
  • Levé menu by mělo mít vlastní posuvník, pokud bude obsahovat hodně položek
  • V první fázi řeš jen design. Protože jde o obecnou komponentu, která musí být snadno dostupná napříč systémy, tak naopak použij přímé stylování přes HTML attribut style
  • Výstupem úkolu bude nakódovaný HTML modul, který pak já převedu na Vue komponentu, proto ho dodej třeba jako HTML soubor, který vložíš sem do komentáře

Inspirace, jak nastavení řeší třeba Webnode:

Snímek obrazovky 2021-08-08 v 18 38 29

Init modalu: 5b46a62

Díky.

Video support

  • Možnost odeslat redirect na konkrétní stránku
  • Rozlišení obrazovky, OS, prohlížeč, další technické info...
  • Zobrazení pozice kurzoru uživatele i technika, možnost kliknout na konkrétní místo přes volání selectoru událostí
  • Možnost vložení šipky, textu a obrazce na konkrétní místo (div position absolute), vázat ke konkrétní URL, aby to zůstalo i po pomoci
  • Během sdílení nabídnout tlačítko pro rychlé ukončení hovoru z obou stran. Nabídnout interaktivní živý chat + zobrazit telefonní číslo technické podpory pro přenos hlasu
  • Možnost odeslání souboru přes chat až do kapacity 10 MB (jen obrázkové formáty, pdf a office)

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.