Show HN: A ncurses CRM system (and accounting)
I've been building a CRM/accounting system for my personal small company. It's still in an early stage and is lacking a few features. But it is finally usable.
https://asciinema.org/a/0g9f8c00mrkm018p10r8p8km3
Please share your thoughts
63 comments
[ 3.5 ms ] story [ 83.7 ms ] threadMaybe you could automatically generate invoices with LaTeX and save a pdf, that would be cool.
Also, you could add an account overview, where you could see the balances of all your accounts, compare it with previous periods. Paint them red if you're expenses are soaring etc. Maybe some graphs...
You could also prepare a screen for financial indexes such as cash flow, debt-capital ratio etc.
I'm sure you're not the only one but I can see how this could be much nicer than a Web UI for someone (like me) who prefers Vim and Mutt over Atom and Gmail.
I have a supicision that OP is also a Vimmer who (like me) gets upset when a user interface doesn't accept hjkl and all the other idiomatic Unix/Vi keyboard commands.
The system has a very clear API between GUI and backend, so future plans is to add more interfaces, a web based one is on the list (although IMHO web based interfaces are worse to use).
The LaTeX idea is great, so great that it's already done. I tried to keep the video short and don't show all features. I also have integration with mutt. Sending a new invoice is just a keystroke away and then mutt is opened with an attached pdf and a template mail body.
The account overview is the biggest weakness right now and something I look forwared to improve. I definitely take your suggestions with me towards that work.
Therefor my current solution is to have a really tiny presentation layer that is able to adjust to multiple UI.
https://github.com/Yomguithereal/react-blessed
If you write a blog post about the CRM and your experience in writing it, that would be a fun read.
Good luck!
I can see lots of reasons why this could be practical but most of them (like bad network connection or slow hardware) belong to the past.
Is it just a personal preference or aesthetics?
So I tried to mimic vim (fast load times and no use for a mouse). Then ncurses was a natural choice because I wanted to be able to reach the app from everywhere (at least until I've made it network aware).
Beautiful and reminiscent of old school mainframe systems in CICS.
When system users were mainly roomfuls of data entry staff (universally female) these systems were absolutely optimised for power users banging through as many transactions as possible. No mice in sight, all keyboard operation.
Between advances in ML-based OCR and dictation, I anticipate future data entry to get much more sophisticated, and demand extremely low-latency, quick-updating screens that might bring about more awareness of terminal-based interfaces in some situations.
A comment about the single user and huge data. I've a test database with 100 000 account, 1 000 000 events, etc. That is about 2 gb in size. Not huge, but not tiny either.
There's no multiuser support yet, but I plan to add it.
What I would like is a high-quality redesign of ncurses with a modern C++ interface.
Turbo Vision is a DOS-based character-mode text user interface (TUI) framework developed around 1990 by Borland for Pascal, and C++.
I aim for 0.1s feedback, and that's hard going over the network. See https://www.nngroup.com/articles/response-times-3-important-...
I don't think it's such a bad idea for production customer data. Actually I think it's a great idea and wrote my master thesis about that: http://fileadmin.cs.lth.se/cs/Personal/lars_bendix/Teaching/...
I would love to hear why you think it's a bad idea! Would you care to elaborate?
Still figuring out if I should make this open or closed source. Hard choice!
I definitely reach out here again once I've project page up and running.
Looks pretty nice though!
Unfortunately local laws demand each verification to be enumerated and not editable. That's something ledger and beancount doesn't provide to my knowledge. (and this again proves your point, writing accounting systems are hard, perhaps it's better to stick with the CRM bit).
I'd much rather create an app in ncurses as a developer and then include ncurses-web (if it existed) compile and give the .css file to a designer.
Somehow we decided to trade-off upfront training (no longer required) for long term speed & productivity (no longer available).
An interface that can be used by anyone with almost no training, is almost certainly a low productivity interface.
I haven't expressed this very well. But, in short, I love this and would download and use it tomorrow.
I'm a heavy Evernote user. About once a year I look for a replacement and consider rolling my own low tech CLI interface. Then I remember all the notes I take on my phone and how often I use the web version to look things up.
I appreciate your feedback and will definitely reach out to hacker news as soon as I've something for you to play with.
Can you create an OpenGL interface in voxels please.