Coder Social home page Coder Social logo

hql287 / manta Goto Github PK

View Code? Open in Web Editor NEW
5.3K 102.0 471.0 8.43 MB

🎉 Flexible invoicing desktop app with beautiful & customizable templates.

Home Page: https://www.getmanta.app

License: GNU Lesser General Public License v3.0

JavaScript 93.80% HTML 0.83% CSS 5.36%
invoice invoice-pdf invoice-generator invoice-template invoicing-application invoicing-software electron-app electronjs react reactjs react-redux electron-react react-app webpack freelancer electron customizable-templates freelancing taxes receipt

manta's Introduction

Manta App Logo

Manta Build Status v1.1.4

A desktop application for creating invoices with beautiful and customizable templates.

ScreenshotsFeaturesDownloadsTechnologiesWhy?GoalsDevelopmentFAQAcknowledgement

Screenshots

Here's a few screenshots of Manta. See more

Business Template

Minimal Template

Form

Invoice

Translation

Do you speak multiple languages? We need your help!

If you're interested in translating Manta, please see the detailed instruction here. The following languages are currently being translated, if you would like to Manta to support another language, please submit your request here.

Features

  • 🎚 Flexible form. You can turn on/off field and save as default setting.
  • 🏗 Drag & drop for reordering items. This makes editing easier.
  • 📐 Use SVGs for logo for better printing.
  • 🎨 Custom designed & highly customizable templates.
  • 🏷 Custom statuses for invoices.
  • 📊 Export PDF for print or email.
  • 🔒Complete Privacy. You financial data stays where it belongs.
  • 💯 Totally Free.

Downloads

macOS Windows Linux
Download v1.1.4 Download v1.1.4 Download v1.1.4

More Download Options

Supported Platforms

Following platforms are supported by Electron:

macOS The minimum version supported is macOS 10.9.

Windows Windows 7 and later are supported

Linux:

  • Ubuntu 12.04 and later
  • Fedora 21
  • Debian 8

More information.

Note that on Linux, some users might experience a GPU bug where the select options rendered as a black box, see issue #128 of Manta and issue #4322 of Electron. This can be fixed by disabling hardware acceleration like so:

manta --disable-hardware-acceleration

Remember that doing this might lead to some degradation of the app's performance. This is why "the fix" is not included by default.

Technologies

Why

The main reason I decided to build this is because I need a simple tool to create good looking invoices, estimates, and receipts but couldn't find one that suits my needs. I don't do invoicing for a living but I do need it occasionally so an ideal invoicing app just needs to be good at one thing and one thing only, which is making invoices. I really don't need a full-fledged bookkeeping or accounting software.

I believe there are many people such as freelance designers, developers, photographers or writers... also have such need. However, most (if not all) products I found have these these problems:

Complexity

  • Most invoicing products nowadays is web-based, which means you’ll need to maintain a new account (possible a monthly fee, too) just to create an invoice.
  • Sure, there some open-source products that can be self-hosted, but that will introduce a new layer of complexity to your workflow. Who will setup the product? Who will maintain the server? Who will cover the cost? ...
  • You will always need internet connection to be able to create your invoices. It can be slow sometimes.

Privacy

  • When you use a web service, most of the time, you’re giving away your data whether you want it or not. Financial data is sensitive and I believe that no one should know about your data except yourself.

Goals

With that in mind, I know that Manta would need to satisfy these criteria:

  • 🚀 Fast!!!

  • 👍 Friendly UI & UX

  • 🎉 Has nice looking templates

  • 🔒 Does not touch user’s data

  • 💰 Free! :)

    If you think Manta delivers these, let me know by putting a star on this project 😉

Development

It's very easy to get started with these 3 steps:

  • Clone this project to your local machine.
  • Open terminal and cd into the cloned folder, usually cd Manta.
  • Run yarn install to install dependencies.
  • Run yarn dev in one tab to start webpack-dev-server.
  • Run yarn start in another tab to open the app.

This is still in beta and it's far from perfect so feedbacks, issues or PRs are greatly appreciated! :)

Note that on Linux you will need additional dependencies to provide the icns2png and gm commands. Ubuntu/Debian users can run: sudo apt install -y icnsutils graphicsmagick.

FAQ

  • Is this app built with Electron?

Yes, it's built on top of Electron. Please see the Technologies section for more info.

  • What boilerplate did you use

None. This is my attempt to integrate Electron with React from scratch. The idea was to get a better understanding of how things work together, especially Webpack. But I do take cue from other projects.

  • What CSS/UI Framework did you use?

I wrote all the CSS myself. I only use Bootstrap for prototyping at first. But I gradually encapsulate most of the style to the component with the help of styled-components. There is some places still use Bootstrap mostly for layout purpose but I'll get rid of it eventually.

  • Where did you get the icons?

ionicons. They're great!

  • Why did you name the project Manta? It has nothing to do with invoicing.

It's actually very common to associate an animal with your brand. There's a reason behind the Twitter bird, the famous MailChimp Freddy or the Docker whale ... It's called the Baby-Face bias. You can read more about it in the book Designing for Emotion by Aaron Walter. In my case, I was inspired by the movie Racing Extinction and by naming this project Manta, I hope to raise people's awareness on some environmental issues mentioned in the movie. You can read more about it here

  • I like Manta's logo, did you design it?

Yes, I actually did all the illustrations as well as the templates that you see in the app.

  • Are you available for hire?

Yes, I'm exploring new opportunities at the moment. Please let me know what you have in mind.

  • How do I contact you?

If you find an issue, please report it here. For everything else, please drop me a line at [email protected]

Acknowledgement

Special thanks to Crowdin for providing an open-source license for Manta. Feel free to check out their website for more information about this amazing localization management platform.

manta's People

Contributors

alphastyle avatar c0b41 avatar crabmusket avatar cryptobench avatar darksmile92 avatar dawsbot avatar flexiondotorg avatar hql287 avatar hugoreeves avatar jiserra avatar jjying avatar lachlanjc avatar marcobischoff avatar mathieudutour avatar ravern avatar shime avatar sidharthv96 avatar twmbx 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  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

manta's Issues

Bulk Actions

Expected Behavior

Being able to interact with multiple docs (invoices, contacts). Possible bulk actions:

  • Delete docs.
  • Set Status for invoices.

Current Behavior

It's not possible at the moment

accent color inconsistently applied

when using the default non-custom accent color, the "INVOICE" font color is black and the dividers are lime-green

but using custom accent color, both the "INVOICE" font color and divider changed to the same custom accent color

unable to resize preview window

on Macbook Pro 15" the preview window is too long and the "save as pdf" button is cut off
the window is also not resizable or able to zoom out to see the entire page

'%' appear as prefix instead of suffix

Please answer these question so I can help you faster.

Is it a bug or a feature request?

  • [ x] It's a bug.
  • I'm requesting a new feature.

Which version are you using?

  • [x ] macOS
  • Windows
  • Linux

Which is the version/distribution of the OS?
I'm using macOS High Sierra

Describe your issue

the VAT & Discount appears as "%5" instead of "5%"

Steps to replicate

set VAT or Discount to percentage-based and preview

using multi-line input for description

my invoices and quotation often have very long multi-line description but the input box is single-line only

i would suggest using a textarea instead of an input text

Cannot quit on Dock

Right click on the dock icon, choose quit but it just hides all the windows.

hook up with stripe

Is it a bug or a feature request?

  • It's a bug.
  • I'm requesting a new feature.

Describe your issue

A killer feature would be to create a quick and dirty webpage where you can allow your client to pay the invoice with stripe.

You would enter your stripe API keys in Manta. Then when you create an invoice, it generates a link to a static webpage (possible on manta.life/invoice) which expect the public stripe api key, the invoice id and the amount. Then when Manta can poll Stripe to check when the invoice is paid and possibly send a notification!

Missing font?

Looks like Manta doesn't display the font correctly. Can anyone confirm this?

Here's what it looks like on my machine.
screen shot 2017-12-09 at 15 02 10

`yarn release:linux` needs system dependencies

I tried running yarn release:linux and found I had to install a few additional dependencies. I was running in the node:8 Docker container based on Debian, so:

apt update
apt install -y icnsutils graphicsmagick

icnsutils is for the icns2png command, and graphicsmagick provides gm.

Not sure if you want to document this anywhere, but hopefully other Linux users will find this :).

Allow preview before saving

Is it a bug or a feature request?

  • It's a bug.
  • I'm requesting a new feature.

Which version are you using?

  • macOS
  • Windows
  • Linux

Which is the version/distribution of the OS?

I'm using macOS High Sierra

Describe your issue

Previewing cannot be done without first saving

Add support for decimal prices

Is it a bug or a feature request?

  • It's a bug.
    Which version are you using?
  • macOS
    Which is the version/distribution of the OS?
    macOS High Sierra

Please add support for decimal prices such as 7,99€; 20,23€. Currently the ',' just gets deleted.
That'd be really nice.

Add signature field

Is it a bug or a feature request?

  • It's a bug.
  • I'm requesting a new feature.

Describe your issue

2 Signature fields, 1 for client to sign and the other for self
default value could be "this is a generated document, no signature required"

more flexibility for VAT and contacts

Is it a bug or a feature request?

  • It's a bug.
  • I'm requesting a new feature.

Describe your issue

I'm often billing with a VAT: charged reversed. That's impossible in Manta, you can only enter a number. It would be nice to be able to enter anything and default to 0 if you can't parse it properly.

More generally, it would be nice to be able to have more flexibility in everything. For example, one of my clients wants the contact section to be

{{name of the company}}
VAT: {{VAT number}}
{{address}}

Maybe there could be a text area with a mustache type of template where we can specify what are the fields we care about the contact?

mark invoices as "paid"

Is it a bug or a feature request?

  • It's a bug.
  • I'm requesting a new feature.

Describe your issue

I pretty much only care about "pending" invoices, for which I haven't been paid. It would be nice to split the invoices into 2 sections: "pending" and "paid"

Update Error

  • Quit & Install Does Not Work as Expected (since preview Window Is still active)
  • Move Application To Read Only Volume

Can't click any button, it grabs the window instead.

Is it a bug or a feature request?

  • It's a bug.
  • I'm requesting a new feature.

Which version are you using?

  • macOS
  • Windows
  • Linux

Which is the version/distribution of the OS?

Ubuntu Xenial

Describe your issue

I can't click any button, when I try to click it grabs the window instead.
image

Steps to replicate

  1. Build for linux with yarn release:linux or yarn release (for v1.0.0 branch), both have same behavior.
  2. Try to click on a button ("Skip" or "NEXT") or anywhere else in the window.

Generate Quotation

Please answer these question so I can help you faster.

Is it a bug or a feature request?

  • It's a bug.
  • I'm requesting a new feature.

Describe your issue
Generate quotation instead of invoice
Preferably a way to then generate an invoice based on the saved quotation with a reference to the quotation id

Allow to edit invoices

Currently if I spot a typo fix on an invoice, I'm forced to create a new one.
We could have 2 options in addtion to see/delete like : Edit, Duplicate.

:)

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.