Bicycle service database?

bikegremlinbikegremlin ModeratorOGContent Writer

Can you recommend a decent "out-of-the-box" solution for this (I'll explain below)?

I'd like to more easily keep track of bicycles I've worked on, for the folks who are happy to have me think about that instead of them. I keep the bicycle owner's phone (and/or email), name, and the rest is bicycle-related data.

Ideally, I should be able to attach photos to each bicycle.

Optional:
Each owner being able to log in and see only the stuff related to their bicycle (but nothing else).
A step beyond that would be for each owner to be able to set their bicycle's data (along with my comments on the bicycle's condition and prior repairs) to be public (my comments are trustworthy for selling used bicycles).
That's all optional though, the main point is to make it simpler for me too keep track (and photos).
In those terms - software that works only in English (menus and stuff) is also OK.

Security and privacy are very important (GDPR is technically irrelevant - LOL - but reasonable privacy protection is crucial).
Self hosted only.
Mobile friendly is not critical whatsoever (it is a big plus though, especially for uploading photos "directly").
Simpler is better.
One-time payments are fine, but any recurring software subscriptions are not (I run a hobby, non-profit bike shop as a community service, basically).

I'm not willing to spend a huge amount of time or money on this (nor would I bother anyone to code this from scratch). I would prefer an out-of-the-box solution and if it doesn't have any security audits, just block the access without my 2FA or fixed IP (ideally both) - which would leave the optional section out of the implementation of course.

P.S.
To clarify:
No payments or credit card info tracking or processing.
No customer emailing, contacting or "newsletters" or any of that commercial crap.
Just want a way to quickly and easily find a bicycle's service history and keep it up-to-date.

Relja of House Novović, the First of His Name, King of the Plains, the Breaker of Chains, WirMach Wolves pack member
BikeGremlin's web-hosting reviews

Comments

  • If the part about the bike owner viewing the page is optional, i.e. if it's ok for you to be the only user, then why have it online at all? Just have it on your local computer.

    If the bike owner has to view but doesn't have to be able to edit the page, then maybe you could just have a separate, password protected html page for each bike. Then you might need some trivial scripting to maintain the password list. You could use an apache rewrite rule to handle admin access. This might suffice for a few hundred bikes before getting too crazy. How many bikes do you have to track?

    Thanked by (1)bikegremlin
    1. Define an JSON Schema for the data.
    2. For each bicycle, write its data in a JSON file. Pictures are stored in the same folder and referenced from JSON.
    3. Make a simple webpage to render the file via an ejs template.
    4. Each bike owner has a Unix account to the server, so they can edit JSON files of their bikes with vi.
    5. If they wish to publish their data, chmod the file to be world readable.
    Thanked by (1)bikegremlin
  • bikegremlinbikegremlin ModeratorOGContent Writer
    edited September 30

    @willie said:
    If the part about the bike owner viewing the page is optional, i.e. if it's ok for you to be the only user, then why have it online at all? Just have it on your local computer.

    If the bike owner has to view but doesn't have to be able to edit the page, then maybe you could just have a separate, password protected html page for each bike. Then you might need some trivial scripting to maintain the password list. You could use an apache rewrite rule to handle admin access. This might suffice for a few hundred bikes before getting too crazy. How many bikes do you have to track?

    Good questions.

    1)
    It is a lot more practical for me to have access from wherever I go, without having to install anything to access a "cloud" file. Does this explanation make sense? :) It should also make automatic backups a bit easier.

    2)
    I'd like for it to be scalable, and easy to search (all the bikes by a given owner's phone, email or name). If it is too much of a time/money pit, I'd stick with the existing Excell (Libre Office technically) file - can't say it's not working. It's just that entries, (more than the number of bikes) keep piling up, and storing photos is more of a hassle (it's easy to store, harder to match them to a bicycle).

    Relja of House Novović, the First of His Name, King of the Plains, the Breaker of Chains, WirMach Wolves pack member
    BikeGremlin's web-hosting reviews

  • You could try abusing the snipe-it asset tracking software for it. I've never used it, but stumbled across it for a different purpose. Might fit the bill while being open-source.

    Thanked by (1)bikegremlin

    Hey teamacc. You're a dick. (c) Jon Biloh, 2020.

  • Nocodb would be perfect for this.

    Thanked by (1)bikegremlin

    ✨🎁 Low end deals Telegram tracker: https://t.me/lowendweb

  • I'd like for it to be scalable, and easy to search (all the bikes by a given owner's phone, email or name).

    Really, you need numbers: scaleable to 1000 bikes? 10,000? 1 million? 1 billion?

    Google SRE used to say figure out your service's realistic workload and then build to handle 10x that much. So if you really expect 10,000 bikes, build for 100,000. Don't build for millions. At each stage you will need different infrastructure and architecture decisions and by the time 100,000 starts getting cramped, you will have found other parts of your requirements have changed.

    I'd say at the 10,000 level or maybe higher, you are ok with simple text files or sqlite or so. It gets more interesting above that.

    Thanked by (1)bikegremlin
  • BochiBochi OG
    edited October 7

    How about those "CRUD generators/builders" to build the thing?
    Examples:

    I played with a very nice one some time ago, but I can't remember the name - searching now...

    Thanked by (1)bikegremlin
  • bikegremlinbikegremlin ModeratorOGContent Writer

    @willie said:

    I'd like for it to be scalable, and easy to search (all the bikes by a given owner's phone, email or name).

    Really, you need numbers: scaleable to 1000 bikes? 10,000? 1 million? 1 billion?

    Google SRE used to say figure out your service's realistic workload and then build to handle 10x that much. So if you really expect 10,000 bikes, build for 100,000. Don't build for millions. At each stage you will need different infrastructure and architecture decisions and by the time 100,000 starts getting cramped, you will have found other parts of your requirements have changed.

    I'd say at the 10,000 level or maybe higher, you are ok with simple text files or sqlite or so. It gets more interesting above that.

    Fair point.

    I would expect 10,000 bikes to be OK for my lifetime - probably a couple of thousands, not ten.

    Relja of House Novović, the First of His Name, King of the Plains, the Breaker of Chains, WirMach Wolves pack member
    BikeGremlin's web-hosting reviews

Sign In or Register to comment.