Brainstorming on new BrickStore-style software

edited October 2014 in General Vote Up4Vote Down
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

  • 35 Comments sorted by Votes Date Added
  • I know the software has a billion uses, its just not for us. We use it for one thing; We update all of our prices at the same time, along with the ability to increase/decrease to price guide by a percentage or dollar amount.

    Chris
  • I use Brickstock for altering prices, comments and remarks as well as adding new stock to my store.

    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 :)
  • Brickstock is pretty much un-usable to most people now. I think Richard was working on a new software but sadly died without releasing anything.

    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.
  • edited October 2014 Vote Up0Vote Down
    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.
    Yes, I agree. The task itself shouldn't be too hard (by the way, there are more lines of code in BrickSync than in BrickStock).

    @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.
  • BrickStock is a huge time saver for us in dealing with non-inventoried groups of parts. We create and sell parts kits, so we have our "set" inventories all in BSX files. This allows us to bounce a file against our current inventory so we can "buy" what we need from our BO store (which syncs to BL), then take the remaining items and create wanted lists. It's also significantly faster in adding large batches of inventory that don't come from a specific set.

    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.

  • @PSBricks I also noticed how crappy and slow BrickStore's part search is. It's strange even, it should be an easy problem.
    Dont get me started.
  • @BinOfBlocks: Brickstore (not Brickstock) is indeed outdated, but it has been updated by Patrick Brans and it's called Brickstock now and updates (new items in database) work 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
  • If it could support a my cost field as well as a item price when parting out sets. And those numbers could be mass adjusted separate from each other.
    That would be HUGE for me.
    Katie
  • A nice addition would be support for part variations.
    Agreed. BrickSync already checks alternates when evaluating sets, an inventory management program should be able to do the same thing. If you use custom BSX files, they could just contain alternateID tags for some parts (this is a BSX extension, BrickStore/BrickStock don't write or read such tags in BSX files despites fetching alternateIDs, go figure). Custom alternate IDs would also make it possible to swap colors and more.
    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.
    To clarify this point... Such inventory software would be able to connect to BrickSync (by IP and port) to display and edit the store's live inventory directly. You could connect all workstations to the same instance of BrickSync, that should work better than a web interface.

    @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?

  • @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.
    My wife does the majority of adding (she is not here right now) But I believe the reason she doesn't use it (and myself) is it simply looks like a confusing program. We started selling LEGO a couple years ago and did so through the web interface. We stumbled on BrickStore, opened the software and our first reaction was "wow, what are we supposed to do now?" It took me a while just to figure out how to sync my inventories with the program. So over all, my wife and I see it as very confusing and not user friendly.

    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
  • @budgetkids: such programs aren't intended for case to case uploads, they really serve mass updates and mass listings, partouts and backups, pictures are therfore less important...
    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 ;)
  • How do you add a quote box :D

    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
  • @BinOfBlocks: Brickstore (not Brickstock) is indeed outdated, but it has been updated by Patrick Brans and it's called Brickstock now and updates (new items in database) work fine.
    http://brickstock.patrickbrans.com/
    Eric
    I was speaking of brickstock/brickstore. with brickstockI still have to reset the column view every time i open a file, and item search just takes way to long. Also brickstock wont export to BL correctly.
  • edited October 2014 Vote Up0Vote Down
    But I believe the reason she doesn't use it (and myself) is it simply looks like a confusing program.
    I fully agree that BrickStore's interface feels awkward, but feel free to share how you believe it should be designed (I can't trust my judgement on this, my personal concept of a good interface is a powerful command line).
    How do you add a quote box :D
    Like that! :D Just click on "Quote" for the message you want to quote.
    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.
    Got it, basically for each part MyCost = AvgSalePrice * ( WholeSetAvgSalePrice / YourSetPurchasePrice ). Unfortunately, both the BL API and the XML upload provide no way to edit that mysterious "My Cost" field... Offline software could certainly support it, but it would be a pain to upload automatically.

    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!
  • @allrightbricks I was mistaken, it looks like the XML upload does allow "My Cost" editing. That could work, though requiring manual XML uploads.
  • I use BrickStock and it works well for me.. I wouldn't be opposed to trying something new.
  • How do you add a quote box :D

    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

    +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)

  • Just realised a few more:
    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.
  • Actually the only things that would improve Brickstock for me at this moment:

    - 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.
  • ^this last one is really annoying- I've lost changes several times.
  • Yep quite annoying indeed, it also works with the 'down' arrow, but in stead of having the box just below ready for edit it 'blues' out the line (so same thing as with enter). I think it was designed like that to avoid entering unwanted data (wrong pricing would be the worst), but these days people use more programs such as Excell, so shouldn't be much of an issue to make a new program more conveniant on that matter.
  • edited October 2014 Vote Up0Vote Down
    Unfortunately, both the BL API and the XML upload provide no way to edit that mysterious "My Cost" field
    I've been lobbying BL to have the MyCost field accessible by API for some time now. Latest response was (yesterday) "I am so sorry this is taking so long!! I checked with our API manager on this again and she says that there is another API issue that she must fix before the "My Cost" feature is deployed".

    If more of us could chase this (weekly, like I'm doing), maybe it'll stop it from repeatedly slipping down the priority list.

  • @brickcounter Good luck with that :), I had poor experiences even reporting actual API bugs to them.

    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.
  • As mentioned in another thread - I would find a BrickOwl centric "Brickstock" type app very useful.

    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
  • edited October 2014 Vote Up0Vote Down
    As mentioned in another thread - I would find a BrickOwl centric "Brickstock" type app very useful.
    I'm thinking such software should hold a complete database with IDs and names from both BO and BL, perhaps even LDraw or Peeron IDs. The data would come from the BrickOwl database, but with all the BLIDs being resolved, so it should work fine with BrickOwl or anything else.

    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 would also find very useful all the BL "type" inventory manipulation that is missing here.
    I'm not following that part, what "type" inventory manipulation do you refer to?
  • I think Graham just means being able to take a subset of inventory and change prices/bulk/tiers/comments/etc.
  • @brickcounter Good luck with that :)
    Mission 'my_cost' accomplished :P


  • Mission 'my_cost' accomplished :P
    Congratulations. :) I also heard back regarding an API bug/issue, and it seems they'll actually fix it. I'm impressed, considering how previous bug reports just disappeared into a black hole.
  • edited January 2015 Vote Up0Vote Down
    Is this still on the 'to do' list? :)
  • @BrickItOn I actually have written a bunch of related code. Add all the reusable code from BrickSync, and what we are missing is mostly... an user interface.

    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. :)
  • In my experience none of the native cross-platform UI are satisfactory. They all have a stiff learning curve, they are tedious to use and hard to customize (which always need to happen).
    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.
  • @weberemmanuel What is this "node toolkit"? A Google search doesn't turn up much.

    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".
  • @Stragus "node-webkit" recently rename NW.js (nwjs.io). Basically a chromium build which run Node JS and let you easily integrate C++ modules. A lot of application are written this way nowadays (or similar technology). "Popcorn Time" is maybe the most famous publicly using it.

    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.
  • @weberemmanuel Ah I see! I really don't know anything about Node JS or web languages in general. I'm from the completely opposite end of software programming, the low-level stuff: C, CUDA, OpenGL, custom kernel patches, NUMA, assembly, SSE/AVX... :)

    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.
  • @Stragus

    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.
Sign In or Register to comment.