Skip to content

Commit 7bc6011

Browse files
v0.4.13 (#214)
* 🔖 bump: version 0.4.13 * Enhancements (#213) * fix lockscreen gradient * wave animation * change font * lint css * change font family to manrope * center no items box * 📝 chore: Old Purchase -> Return Item * disable save product if all required fields are not filled * fix noitems box * fix product addition * 🚑 update: electron updater * 💄 ux: update disabled text color Co-authored-by: Mohit K. Yadav <[email protected]> * Add README (#216) * fix lockscreen gradient * wave animation * change font * lint css * change font family to manrope * center no items box * 📝 chore: Old Purchase -> Return Item * disable save product if all required fields are not filled * fix noitems box * fix product addition * 🚑 update: electron updater * 💄 ux: update disabled text color * 📝 docs: README iteration 1 * ✨ feat: add support tab * 📝 update support tab * 🚀 feat: update pdf worker to new one Co-authored-by: Mohit K. Yadav <[email protected]> * feat: add export to CSV Feature (#218) * ✨ feat: add export to CSV Feature * fix linting Co-authored-by: Mohit K. Yadav <[email protected]> Co-authored-by: Mohit K. Yadav <[email protected]>
1 parent 8a3ba5f commit 7bc6011

File tree

19 files changed

+3398
-48630
lines changed

19 files changed

+3398
-48630
lines changed

README.md

Lines changed: 44 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,52 @@
1-
# invoicify-app
1+
<p align="center">
2+
<a href="https://invoicify.netlify.app">
3+
<img width="100" src="https://raw.githubusercontent.com/2AMDevs/cdn/main/icon.png">
4+
</a>
5+
</p>
26

3-
An attempt to digitalize billing process
7+
<h1 align="center">Invoicify</h1>
48

5-
## Setup
9+
<div align="center">
610

7-
- Run `npm i`
8-
- `npm run start`
11+
An application aimed to make it easier for SMEs to migrate to digital billing without throwing their exisiting bill books.
12+
<!-- Add Badges here -->
13+
</div>
914

10-
## Build Executable
15+
## ✨ Features
1116

12-
- Run `npm run build`
17+
- 🌈 Native Windows like UI and Feel.
18+
- 🔐 Password Protection and Email OTP based Password Reset.
19+
- ⏬ Automatic In-app updates
20+
- ☁ Import Products from CSV (Export to CSV coming soon.)
21+
- 📦 Variety of Preferences for Application
22+
- ⚙️ Fields customization on print and in-app.
23+
- 🌍 Customizable Currency and State GST Code.
24+
- 🎨 Powerful theme customization in every detail.
25+
26+
## 🖥 Environment Support
27+
28+
| <img src="https://raw.githubusercontent.com/2AMDevs/cdn/main/windows.png" alt="Windows" width="24px" height="24px" /><br/>Windows | <img src="https://raw.githubusercontent.com/2AMDevs/cdn/main/linux.png" alt="Linux" width="24px" height="24px" /><br/>Linux | <img src="https://raw.githubusercontent.com/2AMDevs/cdn/main/apple.png" alt="MacOS" width="24px" height="24px" /><br/>MacOS |
29+
| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
30+
| v0.4.13 ✅ | 🚧 (Build WIP) | 🚧 (Build WIP) |
31+
32+
## ⌨️ Development
33+
34+
35+
## 🤝 Contributing ![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)
36+
37+
We welcome all contributions.
38+
39+
- You can submit any ideas as Pull Request or Issues.
40+
- If you'd like to improve code, make sure you stick to exisiting practices in code.
41+
42+
43+
## ❤️ Sponsors and Backers
44+
45+
<!-- You can sponsor 2AM Devs by emailing at -->
46+
47+
## 💬 Support
48+
49+
For any queries message us on Discord Server [here](https://discord.gg/UgvYpNrHa6)
1350

1451
## Credits
1552

package-lock.json

Lines changed: 2981 additions & 2441 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "invoicify",
3-
"version": "0.4.12",
3+
"version": "0.4.13",
44
"author": "2AM Devs",
55
"description": "Digitalizes your billing process",
66
"private": true,
@@ -41,7 +41,7 @@
4141
"convert-rupees-into-words": "^1.0.6",
4242
"cross-env": "^7.0.2",
4343
"electron-is-dev": "^1.2.0",
44-
"electron-updater": "^4.3.4",
44+
"electron-updater": "^4.3.9",
4545
"github-markdown-css": "^4.0.0",
4646
"node-sass": "^4.14.1",
4747
"office-ui-fabric-react": "^7.145.0",
@@ -93,5 +93,8 @@
9393
"eslint": "^6.6.0",
9494
"eslint-config-airbnb": "^18.2.0",
9595
"wait-on": "^5.2.1"
96+
},
97+
"peerDependencies": {
98+
"eslint-plugin-import": "^2.22.1"
9699
}
97100
}

public/electron.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,30 @@ const getFilePath = async (fileFilters, disableAllFiles = false) => {
9999
}
100100
}
101101

102+
const saveFile = async (fileFilters, disableAllFiles = true, data, fileName) => {
103+
const filters = [
104+
...(fileFilters || []),
105+
...(!disableAllFiles ? [{ name: 'All Files', extensions: ['*'] }] : []),
106+
]
107+
const file = await dialog.showSaveDialog({
108+
title: 'Select the File Path to Save',
109+
buttonLabel: 'Save',
110+
defaultPath: fileName,
111+
filters,
112+
})
113+
if (file) {
114+
if (!file.canceled) {
115+
fs.writeFileSync(
116+
file.filePath.toString(),
117+
data,
118+
(err) => {
119+
if (err) throw err
120+
},
121+
)
122+
}
123+
}
124+
}
125+
102126
ipcMain.on('bye-bye', () => {
103127
win.close()
104128
})
@@ -113,6 +137,7 @@ ipcMain.on('shut-up', () => {
113137

114138
ipcMain.handle('app:version', () => app.getVersion())
115139
ipcMain.handle('file:select', (_event, filters, disableAllFiles) => getFilePath([filters], disableAllFiles))
140+
ipcMain.handle('file:save', (_event, filters, disableAllFiles, data, fileName) => saveFile([filters], disableAllFiles, data, fileName))
116141
ipcMain.handle('get-printers', getPrinters)
117142
ipcMain.handle('printers:get-default', getDefaultPrinter)
118143
ipcMain.handle('file:is-valid', (_event, args) => fs.existsSync(args))

0 commit comments

Comments
 (0)