This topic has come up several times in the forum in the past year, but I would like to give it another go, considering the recent developments on other fronts.
First, are people happy with BrickStock and its development? Personally, I'm not (I don't even use it), but I would like to hear opinions. Are the other projects going anywhere? (I heard about Architect and some other thing...) What features are most lacking for your uses?
Besides managing off-line inventories, I believe such software really should be able to display a store's "live" inventory, connected directly to BrickOwl or to an instance of BrickSync. Any change would be pushed directly to the server(s). Manipulating the inventory through web interfaces (or through BrickSync's command-line) should be unnecessary.
There's a lot of code from BrickSync we could reuse, all cross-platform C99 with no dependencies. To name some:
- Reading/writing of BSX files with BrickOwl-specific extensions (all compatible with BrickStore's .bsx)
- All the inventory manipulations you can think of (sort, consolidate, compute difference, compute changes, merge, etc.)
- Send queries and parse JSON replies for most of BO's API
- Send queries and parse JSON replies for most of BL's API
- Price guide fetching through BL's web interface (API is unusable for that purpose due to the limit of 5000/queries per day)
- Price guide caching in the same format as BrickStore or BrickStock
- Set inventory fetching through BL's web interface (getting the inventory from BO's API is also possible)
- HTTP queries with keep-alive and pipelining
- A lot more I'm forgetting at the moment...
Lastly, do we have programmers interested in some collaborative effort? I can write anything, but I can't do GUI (or web stuff). I would rather build an OpenGL GUI from scratch than learn GTK+ or QT, but that would be very time consuming. Perhaps someone would like to... *gasp* learn GTK+ or QT?
Thoughts anyone?
Comments
Chris
While the program does pretty much what it was intended for, there are some issues with it.
The most important one of that is imo that hte program only fetches prices in dollar, no matter what the settings are and they need to be manually adjusted to a different currentcy [lowering all the prices a certain %]
Another thing that I dislike about it, is the fact that the program can't handle it if you search through the parts catalog without specifying a category. Now if I'm not sure what a part is, I have to go through the site first.
Searching could also be easier if it showed a picture of the part next to it's description. Now it only does so when you hover over it with the mouse, or if you select the item and a correct colour it shows a bigger picture in the corner.
One of the newer programs for BL is Brickstore, which I tested through its beta phase.
While it's excellent for parting out sets [It even suggests remarks, based on where the same item in other colours is stored], I think it's hard to use to alter your existing inventory. I haven't used it for that ever.
It also allows you to create a batch for a parted out set, which I like but then doesn't show any detailed info about how much of the parts have sold, etc.
That''s a shame, because I was really excited about that and now only use it as a safeguard to see how much of an inventory has been uploaded in case of an error.
Also, there's no way to undo the changes made when it runs into an error and you have to go in and adjust your inventory again manually which can be pretty tedious.
Hope this helps
Brick sales are at a point now that we have 1000s of people all over the world selling them and we could all use a fresh, working software to make it easier.
@budgetkids What makes you prefer a web interface? I find BL's web interface rather clumsy... If you don't mind, I would like to understand the needs better.
@PSBricks I also noticed how crappy and slow BrickStore's part search is. It's strange even, it should be an easy problem.
Thanks for the comments! Let's keep brainstorming, let's try to define what we need exactly.
The GUI is mostly ok. The "search all" performance issue has been noted. Something that I thought would be nice would be to hide unknown colors of a part once a part is selected, so scrolling the color list is faster.
A nice addition would be support for part variations. For example, lets say you have a BSX file you are using to buy/build (vs uploading inventory) that has a 3794 jumper. It would be nice to see the quantities & prices for 3794b and 3794c at the same time. The BL price guide is an imperfect market, and sometimes the prices of variations are a little crazy. So if you need a jumper, but don't care about the exact mold, it would be nice to see that 3794b is $.07 while the original entry of 3794 is $.10.
A mashup with your software for "live" inventory would be great. As for the need for a web interface, that's more about multiple concurrent users at different workstations than anything else. Something that only applies to a handful of users. Otherwise, GUI from a PC/Mac is perfectly fine.
http://brickstock.patrickbrans.com/
@Stragus: in Brickstock a category must be selected before entering a set for partout, just the setnumber should be enough IMO
Settings for multiple currencies is a primary task.
Independant sheets (multiple sheets when downloading) for active items, stockroom A, B and C, and I do hope for multiple stockrooms on BO as well one day, but that's something for Admin Lawrence to consider.
Independent sheets could be easely 'deleted' in one shot, by keeping the requiered sheet for updates (regardless which one).
And a personal note field that can work in 3 or 4 sections (easy for editing), but the final result would just be one note offcourse (when uploading).
A compare with the selling database, not only in 'sold' (6m/1y/2y) but also against 'listed' ones (quantity and average listed price).
There are probably more things a new program could use, but these thoughts and ideas will come when using it ;-)
Eric
That would be HUGE for me.
Katie
@RobErNat @budgetkids Currency exchange rates can be tricky, the usable online APIs don't seem free. When we get there, perhaps BrickOwl could provide its exchange rates through the API?
@allrightbricks May I ask how you would use that field? How would you compute what to put in a "My Cost" field?
On the website it is simple for us to just type in "3001", add to inventory, select color/quantity, view the price guide for that color and determine our selling rate. We then file the part away in our inventory and bring in the next part. So if a different software was created we would certainly give it a go and see how we like it.
Chris
EDIT: Wife just became available. She said it is not easy to use and she also prefers the pictures on the "other" place
When I opened it the first few times it was indeed a bit confusing, but that also happend when I got to BO, and it will happen with other softwares and programs just as well. First (and last) time I was on a Windows 8, I almost kicked out the Computer of the second floor LOL.
Seriously, programs like that just need practice, for work I use SAP, the first few weeks it was really hell, now, a year later it goes smoothly (at least the part I use daily), we also get 'used' to certain visual environments, a change from that just makes it look complicated, practice usually does the trick
Ok. This is how I currently use Brickstock for finding my cost. I import the set inventory, and adjust the entire file by a percentage until the total cost of the set's pieces equals what I paid for the set. I then part it out through Bricklink, and manually enter each of those prices in the my cost field.
If Brickstock or some other program allowed me to set the my cost field to the 6 months average price and then adjust the entire data down until it matched what I paid. And then be able to still set all the selling prices for the set at the 6 months average. I would then be able to part out straight from Brickstock (or whatever) and would not have to enter all the data into Bricklink manually.
Does this make sense? I'm terrible at explaining things.
Katie
I think I have decided to write inventory management software at this point. I won't get started right away, I need time to ponder the task, design and cross-platform GUI toolkits... Feel free to share all comments, observations and thoughts; that GUI stuff is quite far from my usual fields!
+1 from me. Adding My Cost functionality would be great. I do it similar to you, only I upload from BrickStock after editing the XML (I change Price to My Cost, and upload to a stockroom, then manually edit the prices for new lots. Additions to existing lots take on the price of the existing lot in my BL settings)
Being able to select the columns one wants to print + preview + resize option.
A small thickbox 'present and verified', one that doesn't influence an upload, but that still generates a little warning 'did you check': yes/no
+ in the software a tickbox to tag parts that might have alternates: a small number of contributors would tag them, and upload them for next versions (updates). Once in the database, they would generate a small pop-up: ignore OR check and adjust.
- Hiding unknown colors like DadsAFOL said would really speed things up
- Entering data without pressing enter after changes been made. I use Excel a lot, and just click away after making changes.
If more of us could chase this (weekly, like I'm doing), maybe it'll stop it from repeatedly slipping down the priority list.
Thanks for all the ideas and comments! This is brewing slowly in the mind as a low priority process, I'll probably get started in November. I would like to design things properly from the beginning, and that requires a clear vision of the end goals.
Within that I would like to be able to find parts (in my inventory) that aren't selling and the reason (ie price is too high OR nobody wants or is buying it!)
I would also like to find part out value at current and 6 month min/max and average and also the price range where most purchases are made.
I would also find very useful all the BL "type" inventory manipulation that is missing here.
I find Brickstock only usable for adding bulk and/or non-set obtained parts - also finding mini-figs and constituent parts. Brickstock for parting out sets, being tied to BL's pricing, is now little use as many BrickOwl prices are very different from BL.
and lastly I would like to be able to see part out set value shown as current/6 month and my inventory combined with "salability" in as much as some great purchased **bargains** contain parts that are in a color nobody buys and just sit there taking up space!
Cheers Graham
If BL becomes aggressive in protecting their precious intellectual property of part IDs, then the database would just not be distributed with the software. Perhaps it could then be fetched by decentralized torrent-style automated updates? The real database updates would be signed by asymmetric encryption keys to prevent sabotage with fake databases. I'm not too worried about this.
Functions to manipulate prices would certainly be an important part of such software. I'm not following that part, what "type" inventory manipulation do you refer to?
I still haven't started learning a cross-platform UI toolkit (can't stand Qt, unsure about gtk+ or wxWidgets), but I'll get there one way or the other.
Have you considered a different approach like "node webkit". The UI part is a breeze as you can benefit from all web technology and it is fairly easy to incorporate c++ modules.
I'm also thinking about creating a GUI from scratch in OpenGL... It would be as cross-platform as can be, including mobile devices, which could be nice. It's a lot of code but it still looks less painful than learning any of Qt/gtk+/wxWidgets. The main drawback would be an interface with a completely unfamiliar "look and feel".
I think the main challenge with OpenGL (although I haven't investigated in years) could be the quality of font rendering. Back in the days (I feel old saying this) there was no easy way to render fonts with a good anti alias technology. Not sure if things have improved. Next challenge will be to provide a consistent experience across all GPUs/GPU driver version/Platform which is surprisingly not trivial.
By any chance, would you have time and interest to help with the GUI aspect of such software?
You can have pretty fonts in OpenGL just fine, using Freetype and taking special care to render with kerning... You are correct that, historically, for performance reasons, people used to render fonts as a bunch of glyphs stored in a texture atlas. The lack of kerning resulted in aliasing or other artifacts.
Couple issues with this:
1/ Lego is already taking all my limited free time.
2/ I am from the same same end of software programming. I am hiring if you are looking :P.