Entry [5]
Had some stuff to take care off. Missed the last entry.
However, I did do something in the last couple of weeks. I got an idea of a password manager desktop app.
Initially I wanted to build it in Swift, as I'll use it on my Mac mainly. But then decided I might want to have it on my Windows PC as well and that basically cemented my desire to use Electron instead.
Did some research, found a great boilerplate that I can use to generate the code and have been going at it for the past couple of days.
The techstack itself is nothing special. On the FE I run:
- Electron
- Vite
- React
- Typescript
- Axios (for calls to the Web API)
- Redux Toolkit
The backend was a bit more hard to decide on. First, I wanted to have one single application, without separating the UI from the backend. I went through the steps of setting up a cloud Database first, so that I can sync the application offline. But then decided against it. For what it's worth, this app will not be used offline and even if I do decide to use it. Well... I'll figure it out.
After a bit of research, I found that setting up a backend in Electron might be harder than I initially thought. And also more time consuming. I don't want to spend a lot of time on this app. It's not something groundbreaking and I just wanted to do it as a side project. So, scrapped that idea and just decided to go with a Web API back-end.
First, I wanted to use Nestjs with Prisma and Postgres, however Nest and Prisma didn't want to play together for some reason. And after a couple of hours of debugging, I decided that it's not worth the time and energy to figure it out. So I decided to rely on the good old Express.js with TypeScript.
Now the backend stack looks as follows:
- Express.js
- Typescript
- PrismaORM
- PostgreSQL
To ensure code quality, structure, etc. I have ESLint and Prettier setup on both the desktop app and the Web API.
For version control I have 2 separate Github repos, that are for the moment private. I'll definately set them to public once the project is done.
The app will still need a day or 2 to be finished, but it's getting there.
For the design I got a friend of mine to build a simple UI and that's that.
I might set a new entry once the app is done.