Giter VIP home page Giter VIP logo

asciii's People

Contributors

bennofs avatar feliix42 avatar h4llow3en avatar hoodie avatar jklmnn avatar kiliankoe avatar lodifice avatar payload avatar steigr avatar v1ncnet avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

asciii's Issues

CSV Output

  • export annual report ascii csv
  • export single projects as .csv

RFC Statistics

Creates statistics like:

  • Projects/year
  • Projects/manager
  • Money
  • suggestions

Fill files via cli

Leave template tags in document and fill them via command line.
This would be useful for things like payed_date.

Problem is that these fields would have to be ignored by the checker, preferably use yaml_rust to find the exact position in the file and replace it without leaving __TEMPLATE__ fields.

This corresponds to ascii-dresden/ascii-invoicer#6

setup command

Add a setup command that creates the storage dir and perhaps even clones it.

Installers

since cargo install will not suffice create packages for systems, as they become targets

  • Archlinux
  • Mac OSX (#15)
  • Debian/Ubuntu
  • rpm Based
  • windows (#6)

grep TODO

๐Ÿฐ There are little easter egg challenges for aspiring rustaceans hidden all over this project.

Create PDF documents

The original function of the ascii invoicer is probably the last thing I will implement here before shipping v3.0.0
This includes:

  • new templates
  • correct config access
  • perhaps refactoring the config format
  • spawning pdflatex
  • for offers
  • for invoices
  • optionally: produce different formats

XDG Open

open pdf documents with default desktop tool

  • Just use open-rs for that.
  • Overwrite editor if it's unset

edit tempfiles only

When editing a file, create a tempfile and evalute it before copying it back

Document all the things!

  • complete code doc
  • complete user manual ( can be copied from old readme )
    • document .yaml format
    • cover setup and common usecases
  • put it all into something rustdoc can read ( inline code or markdown )
  • optional: print

Test more

A lot of the things in here already work well. But I want to prove that and making the code more testable might improve the design.

Make-like Behaviour

Currently there is ascii invoice and ascii offer to create each output, and ascii open --invoice etc to open them.

ascii v2.5.12 added that ascii show would automatically show an invoice if the even was in the past and an offer if the event is still in the future.
This could be adapted to a new asciii make which will automatically create an offer or invoice, depending on the date in relation to the event's date. It can also be explicitly done with sth like asciii make --invoice (#23).

asciii open should behave the same, but in case the file is not up to date, or not yet created, implicitely create it withasciii make`.

Logging

Add logging of everything that might go wrong or right, because people

Feature gate subcommands

Initing clap via yml is nice, but feature gating certain sub commands may require the src/cli/cli.yml to be replaced by conventional builder pattern initialization of clap.
This could mostly be done with $ sed

Make libgit2 optional

libgit2 functionality could be made optional without sacrificing git functionality all together, since basic support can still be achieved by shelling out to plain old git.
What would be lost would be the neat little status icons in the listing, what would be gained is simpler portability (raspi, travis) since building libgit2 and libssl2 seems to be non trivial here and there

remove clap from libasciii

  • Remove clap as a dependency from the lib and offer a better interface.
  • move print module into libasciii instead

pure library

split up the binary and library for reusability

Full Git Integration

Make asciii a frontend for the underlying git repository

  • git status per file
  • git status overview
  • git log
  • git pull
  • git push
  • git commit
  • passing parameters

send via mail

add asciii send --invoice, which sends the resulting file via mail

Search

Allow searching with either concrete queries, like: event/name:foobar or products:coffee or braindead fulltext search.

The first would be more precise.
Fulltext search may seem simpler, but currently there is no facility to open project files as plaintext, they are always available as yaml_rust::Yaml.

Tipp: check out strsim, it is already an indirect dependency through clap-rs

Make `show` pretty

at least as pretty as that of the original ๐Ÿ˜
but remember

  • --invoice and --offer flags
  • auto refer to invoice if project is in past, otherwise offer

feature parity checklist

  • list
    • --wages
    • --no-colors
    • --filter
    • --caterers
    • --blockers
    • --edit <index> (
    • --archive [<year>] (with default value)
  • edit
    • --config
    • select by index
  • show
    • --errors
  • output ( = path --output
  • calendar ๐Ÿ“†

Git Integration v2

  • add note about stale (unstaged) projects/changes etc
  • warn when latest pull is longer than n-days ago

temporary http server

since this may be via putty, what about running a temporary webserver to allow downloading produced pdf files

Release Process

  • Build for all platforms using CI services
  • keep doc uptodate (also via CI)
  • migrate to @ascii-dresden
  • provide installation and configuration instructions

Health Checks

Check if storage dir structure is ok (templates missing etc)

RFC: Export to markdown

If we ever have an internal git[hub/lab/something], creating a readme.md for each project folder would make for better readability.

Emoji emblems

add emoji emblems to label if a project

  • is fresh
  • is finished
  • is archived
  • has been finished quickly
    • we wrote an invoice within 7 days
    • client payed within 14 days
  • has become old
    • we took more than 7, 21, 28 etc days to write an invoice
    • client took longer than 14 days to pay
  • ...

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.