GithubHelp home page GithubHelp logo

pjs's Introduction

PJ - Project Journal

Staying organized in the easiest way possible.

Purpose

A tool for per-project timestamped work logging. The point is so that when your boss asks you seven months later why you made a very specific design decision, you can send them the whole list of progress updates on the project throughout its lifecycle.

It backs up to a sqlite db which could easily be backed up.

Build Instructions

If you're new to Go, check out "How to Build and Install Go Programs"

Running the Program

navigate to the root directory of the project and run either go run . to run the program or go build to build the program binary. If you built the binary, you can run it with ./project-management or even add it to your PATH so you can just run project-management from anywhere.

TODOs

  • print to PDF
  • print to markdown
  • backup to charm-fs

Entry View

  • hold entries in entry Model, convert that to string instead of all entries to a single string
  • look over fields, cut unnecessary ones

Collaboration

You're welcome to write features and report issues for this project.

pjs's People

Contributors

bashbunni avatar brianmwangi21 avatar brunobmello25 avatar extrabad avatar muesli avatar nguyen-anthony avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pjs's Issues

Add release prebuilt binary on github action

Hey congrats for the first release https://github.com/bashbunni/pjs/releases/tag/v0.1.0 but I think it would be better if you provide a prebuilt binary so we can just download the binary instead of building from scratch, especially for users who are not familiar with Go.

I have an example in my project here https://github.com/alfiankan/teleterm/releases/tag/v2.1.0 so basically every time you create a new release it will trigger a github action to build binary on multiple platforms and os then upload artifacts to the release page, I'd love to help implement it if you don't mind assign to me, thanks

Incorporate print functionality in TUI

printing to PDF with pandoc is already supported, but because Bubble Tea blocks stdin, the implementation needs to be modified to work with Bubble Tea

Add pagination for entries

Currently entries all show in a single viewport, so you have to scroll to see previous entries. I want to add pagination so we can flip through entries instead of scrolling.

Improve error handling

  • TUI should be handling errors with ErrMsg
  • Other errors should be handled more elegantly and returned instead of just log.Fatal

feat: centralize projects

the projects get created and stored in the dir where you run pjs. This should be a central location with the option to change the default location with env variables

Crash while deleting zero projects

Hi,

how to reproduce.

  1. Starting app
    $ ./project-management
    what would you like to name your project?
    First

  2. Starting app again
    List of projects is shown

  3. Press "d" two times

Result:
$ ./project-management
Caught panic:
runtime error: index out of range [0] with length 0
Restoring terminal...

Expected:
No change or message

Print to PDF

Hi, I would like to contribute to the project and code the functionality to print the entries in a PDF file, but I would like to know if when creating entries it will print the entries in the PDF file or is it optional ?

fix: viewport layout sizing

Viewport sizing in entry view is WEIRD. Not correct size after resizing window and initial view is too small. Ideally it occupies the entire width and height of the terminal window while leaving enough space for the help dialogue at the bottom.

Project ID is required even for project commands

We shouldn't need a project ID in our command to list all projects.
The issue lies in the controller.go file and needs to be refactored so that the second argument in the command is optional.

Associate projects w/a directory so that users can make entries & export reports w/o picking a proj ID every time

I can't believe I've done this instead of real work, but I crave formalization of this feature request I've tossed your way a few times in the past couple months.

Current behavior

To work with a given project, users must manually select it by ID. Projects are not associated with anything in particular.

Desired behavior

When my shell's working directory is in ~/code/project-foo, I invoke your utility, and no .hidden project files exist1, prompt me to name a new project, then save it to the DB and write its ID to .hidden. Do this even if I did not pass the "new project" flag.

When a .hidden file does exist and I invoke your utility, do things without requiring me to pick a proj.

With these powers combined, you could support a workflow like the following:

$ cd ~/code/my-new-proj
$ bbpm entry
No bbpm project in ~/code/my-new-proj. Enter the project's name (default my-new-proj): bread's toaster
Created new project bread's toaster.
<editor automatically opened, I write my entry>
Saved new entry #1 in bread's toaster.

$ emacs work.rs
$ bbpm entry
<editor automatically opened, I write my entry>
Saved new entry #2 in bread's toaster.

$ emacs work2.rs
$ bbpm export --format=pdf

Usecase(s)

I double-dog dare you to tell me the workflow I described is not super good.


1: Worth considering how you want this to behave when .hidden exists and doesn't contain a valid ID, or when it exists and contains a valid ID that doesn't exist in the DB. Also, .hidden is just a placeholder name; use something that won't conflict with other hidden files lying around.

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.