Giter Site home page Giter Site logo

ste163 / vislit Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 2.91 MB

Multi-platform desktop writing app for managing, tracking, visualizing, and analyzing writing projects

Home Page: https://vislit.app

License: GNU Affero General Public License v3.0

HTML 0.40% Vue 19.69% CSS 0.70% TypeScript 79.21%

vislit's People

Contributors

dependabot[bot] avatar github-actions[bot] avatar ste163 avatar

vislit's Issues

Feature - Warning Modal for Type Delete

Add the warning modal that shares same format as the Project delete modal

  • In the modal shows a list of all projects that have that type. If there are projects related to that type, user is unable to delete the type (delete button is grayed out)
  • Can delete type only when all linked projects to that type are 0

Goals - UI

UI
Create a new goal form that shows the goal inputs on the left and the Goal Log on the right

  • Form with input
  • Form shows log of all non-active goals in Goal Log
  • Can update Goal, which adds a new active goal and displays old goal in log
  • Can delete goal from goal log
  • Can set goal as completed

Chore - ensure always trimming & lowercasing data coming in from frontend

Best to do this manually at the individual level for now until a pattern arrives (most likely there will not be a pattern as the amount of user input is so small)

On Controller
Project

  • Trim project titles and descriptions, do not normalize
  • Update tests to ensure this works (add an un-trimmed title and description and check that they're trimmed)

Type

  • Normalize (all lowercase)
  • Trim
  • Update tests to ensure normalized and trimmed

Bug - Before deleting a type, check to make sure no projects are linked to it.

On the backend, check to ensure that before you delete a Type, that there are really no Projects with that type.

This occurs at the Repository level, then throws the error up to the controller and back to frontend -> this error should never occur, but it is possible the frontend modal could fail for some reason, and I don't want to corrupt the database

  • Added check
  • Updated tests

Document Writer - allow for saving as HTML files

Need frontend & backend tests

  • When opening app, try to create dir called Projects
  • When creating a new project, create a directory with only id, because if a projectTitle changes, I don't want to have to recursively rename every file. That's just a bad idea
  • When saving the html, for that project, take the projectId, go to that project's dir (make it if it hasn't been), then write a file with date in a human-readable format-projectNameWithoutStrings
  • Add tests & update tests for fileSystemController
{
   projectId: "uuid string" -> so we know which directory to save under
   html: "string of all html", -> the file we'll be writing to disk
   dateCreated: new Date() -> what we'll use to create the file name `${dateCreated}-${projectId}`
}

Document Writer - auto-save

UI

  • Show icon for auto-save
  • Spin when saving
  • Save every 15 or so seconds after stop typing

API

  • Write to the currently open document

Chore - Project dateModified updates when saving/creating HTML writing project or Note

As a user who is writing & saving HTML files, when I hit "save", I also want the Project's dateModified to be updated to reflect I made a change to this project

  • Whenever an HTML file is created, update the Project's dateModified
  • Whenever an HTML is saved/updated, update Project's dateModified
  • Whenever an HTML is deleted, update Project's dateModified

Composable/Helper - LocalStorage save/read

Local storage for reading/saving last opened project

Need 1 or 2 functions, that allow for reading an item from localStorage when state is instantiated & writing to localStorage when settings change

Projects - Types -> dropdown select w/ creating & removing of new types

UI

  • Drop down/select w/ ability to add or remove types
  • Display all available types
  • Allow types to be deleted -> as long as they're not linked to a project already. Throw error if trying to delete a type that is linked to a project
  • Allow for adding types

API

  • Get all types (handful of pre-defined) -> sorted alphabetically
    • Novel
    • Novella
    • Memoir
    • Short Story
    • Poem
  • Add type

Goals - API

API

  • add Goal interface
  • add Goal Controller & Repo
  • Can Add Goal
  • Tests: add goal (normalized & trimmed if needed)
  • Tests: can only add a goal if no other goal is active'
  • Can get all goals for a project
  • Tests: get all when getting a Project
  • Can get a single goal by id
  • Tests: get single goal
  • Can update goal
  • Tests: can update
  • Can delete a goal
  • Test: can delete goal
  • Can mark a goal as completed
  • Test can mark goal as completed

Chore - Project's fetch returns related Type

  • Project object returns related Type object
  • Update tests to ensure this works

Project's require a type, so a type should always be present.

However, need to think more on how I'll be deleting types -> out of scope for this ticket

Document Writer - allow for loading a saved file

Need visual for what files are available to load,
then load them onClick

by default, loads most recent

-> this becomes the Selected File which will be the one we write to. Will need to update its file name accordingly.

Ie: I open a file on 2021-01-01 that's from 2020-12-30 and start making changes. Whats the file name?

Progress - API

API

  • Can add progress
  • Can update progress
  • Can delete progress
  • Can get all progress by project id (NOT connected to the Project object) and by month + year
  • Can get progress for today's date to display on summary page

Note:

  • Get all Progress for projectId & date range
    Being able to see ALL progress is not going to be a thing until later

  • Store all dates as UTC, new Date(). Problem is connecting those new Date() for the month. Save them as UTC dates?

https://stackoverflow.com/questions/13146418/find-all-the-days-in-a-month-with-date-object#13146828

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.