doc: add project goal

This commit is contained in:
King Kévin 2023-01-23 14:03:46 +01:00
commit 058c7a7b13
1 changed files with 61 additions and 0 deletions

61
README.md Normal file
View File

@ -0,0 +1,61 @@
partdb is an electronic parts manager.
goals
=====
I wished for a part manager with the following properties:
- self hosted: I do not wish to rely on an external service (which could become unreachable or simply disappear)
- web interface: this removes the need of yet another window running while designing boards, and just integrates well with the remaining part searching activity (e.g. on manufacturer and distributor web pages)
- customizable: simply because everyone has a different designing work flow, and wants to optimize their tools according to it (particularly myself)
One matching solution I found is [PartKeepr](https://partkeepr.org/).
I used it for several year, and it could still be OK for my needs.
But some aspects are just not that optimal anymore:
- it is not developed anymore since 2018 (a docker image keeps it runnable)
- logging in, and searching for parts is slow
- customizing it is really hard (views, features, ...)
- you always have to edit the part and click several times to copy any kind of value
I recently also discovered [Binner](https://binner.io/).
It does not allow to add custom part properties, or third parties distributors.
But it's a young project and seems promising.
Because they did not fit by power user demands, I decided to implement my own solution.
partdb is very crude, but it works, particularly for me.
components
==========
Part information is:
- stored in a MariaDB/mySQL database
- retrieved using a sinatra HTTP/REST server
- displayed using minimal HTML+JS pages
installation
============
install software dependencies (here for Arch linux):
~~~
sudo pacman -S mariadb
sudo pacman -S ruby-sinatra ruby-webrick
pikaur -S ruby-mysql2
~~~
configure database
~~~
sudo mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
sudo mysql
CREATE DATABASE partdb;
CREATE USER 'partdb'@localhost IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON partdb.* TO 'partdb'@localhost;
exit
mysql --user=partdb --password=password --database=partdb < schema.sql
~~~
put the database access information in `credentials.json` and run `server.rb`.
now go to http://localhost:4244 and you are ready to use it.