Skip to content

Functionality Requirements and Vision

Jakub Łasisz edited this page Jun 6, 2015 · 17 revisions

Zakres funkcjonalności:

  • wyświetlanie dokumentów
  • tworzenie nowych dokumentów
  • import/eksport do jednego formatu (import z ODT, eksport do PDF)
  • zapisywanie/wczytywanie dokumentów z bazy
  • obsługa kont
  • prosty toolkit
  • formatowanie tekstu
    • pogrubienie, italiki, podkreślenie
    • wyrównanie tekstu
    • wypunktowanie
    • zmiana rozmiaru czcionki
  • wstawianie obrazków
  • tryb offline
  • integracja z GoogleDocs

Model przesyłanych danych będzie w json'ie. Model

Dane będą trzymane w bazie MongoDB, gdyż jest to jedna z najbardziej popularnych baz NoSQL i istnieją biblioteki do integracji z Django w którym będzie stworzony serwer. Każdy dokument w bazie będzie miał odpowiedni wpis, dodatkowo będzie istnieć odpowiednia struktura w bazie definiująca użytkowników.

Wykorzystanie biblioteki socket.io (po stronie serwera django-socketio) do komunikacji poprzez WebSocket. Do komunikacji z bazą, zostanie wykorzystana biblioteka MongoEngine.

Diagram architektury systemu:

Klient (javascript, po stronie przeglądarki z użyciem jQuery) oraz serwer (django) komunikują się przy pomocy WebSocketów (biblioteka socket.io po stronie klienckiej, django_socketio po stronie serwera). Dla każdego nowego klienta, który uruchomi aplikację jest tworzony socket przez który komunikuje się z serwerem. Serwer przechowuje dane w bazie dokumentowej (mongoDB) z użyciem biblioteki MongoEngine. W ramach pracy w trybie offline zmiany użytkownika na dokumentach będą zapisywane lokalnie i synchronizowane z serwerem w momencie uzyskania połączenia. Dodatkowo klient komunikuje się z chmurą Google Drive poprzez API (żądania do chmury nie przechodzą przez serwer), dzięki czemu może korzystać z możliwości pracy z chmurą, w tym eksport i import dokumentów.

Clone this wiki locally