tl;dr: We’re going to write an SaaS application to be used as a fundraiser for the UG and for our members to gain experience.
What are we doing?
After a year of hands-on labs where we worked through Mirosoft’s lab manuals, we realized it was time for a change. Josh Riggenbach, our HoL coordinator, and several members mentioned it would be more fun and better learning to work on a real application together. We just had to think of something good, something that would have a lot of different pieces so we’d have a lot of chances to do something different.
Any PGH.NET member is free to join this effort. We’ll break up into smaller teams which will operate with a high degree of autonomy about what technologies they implement. Once challenge we’ll have is ensuring consistency across projects developed independently of one another. We’ll attempt to overcome this by utilizing HoLs, SharePoint, Yammer, Lync and whatever else we have at our disposal.
The expectation is that we’ll approach all decisions professionally and with a solid basis of reason. When necessary, employ the “two libraries enter, one library leaves” method with spike projects. And when absolutely necessary, I reserve the right to assume the role of benevolent dictator.
Amanda enrolled the group into BizSpark, and we’re trying to get the number of licenses expanded. Hopefully we’ll be able to distribute Visual Studio and other licenses to members who need tools, and we’ll have Azure credits as well. Source control will probably be GitHub, and we’ll probably use TFS as issue tracking.
As a Microsoft UG, we also have a great number of licenses for Office365, which will give us Lync, SharePoint and some Office licenses which we can use.
What’s the application?
One day, I had a brainstorm. This is what I sent to Josh:
Here’s one idea I had, it’s a little goofy but very practical, and has a diversity of things to learn. My wife and her siblings (four total) had a yard sale at our house this weekend, and it was kind of a pain keeping track of whose items were sold out of a big pile, and totaling up at the end. So what if we build software to manage yard sales. You could create an event–Dudley Family, Camelot Neighborhood, or St. Joshua Riggenbach White Elephant sale. Anyone participating needs an account and gets invited by the organizer. People enter their items, and print price tags with QR codes for each item. Cashiers would have mobile apps to scan the QR codes, total the sale for the customer and update the seller’s total take. We can add discounts, tithings, etc. as we go on. The cool thing is, think of all we’d need. Front end in angular.js, WebAPI back end, Identity 2.0, mobile apps, and so on…The HoLs would serve as sync-up and problem solving meetings. This could be pretty cool. What would be really awesome is if we could make this SaaS, and use the funds to support the UG, maybe have a great meal once in a while, a group party somewhere, or maybe a mini-conference of our own. Similar software exists for consignment sales, but those are a different thing than a yard sale or white elephant.
What exists now?
There is one piece of commercial software, it’s PC based and kind of crappy. Nothing does what we’re proposing to do–cloud based, barcode scanning, mobile clients. We could do for yard sales what Expensify did for expense reports. This should be useful for both a single family garage sale as well as a huge church bazaar.
Features, in no particular order
- create a sale via mobile client or website
- Add items via mobile client or website. Item includes description, condition, owner
- print labels with barcode, keycode and price – we should output a PDF for one of a couple Avery sizes, or maybe a CSV for mail merge (support note–people’s printers can suck, causing poor readability and non-scans)
- To add clerks to a sale, have clerk scan a QR code and enter their name and email address. If there is no account we create one automatically and send a random password. This has to be simple so parents can quickly recruit kids whe a sale gets busy.
- reports calculate total sales and split for each person
- Use 3of9 barcode font because it’s cheap/free and wand scanners are easy to find, as are barcode libraries which can read this
- sellers can maintain an inventory, which the can update through the year
- sellers can allocate specific inventory to a specific sale (might be future phase)
- allow clerks to override price after some haggling
- dev, test and prod databases environments
- dev, test and prod API hosting environments
- dev, test and prod website hosting environments
Simple Data Model
This is just off-the-top-of-my-head entity model. We’ll build this out as a group as we go along.
– date start
– date end
– contact info
– payment options
– registration times (when items can be added to the sale)
– registration instructions
– contact info
– earned percentage (varies per sale)
– type (organizer, clerk), coud change per sale
– images (multiple)
– asking price
– minimum price
– sale price
– status (on sale, on hold, broken, stolen)
– on sales
– on items
– What is the current MS membership?
– Brock Allen’s Membership reboot instead?
Where’s the whiteboard photo?
We have the contact information for everyone who attended and will join the effort. A GitHub organization has been created, and Josh and Sai will be adding members.
Paul and I will set up Office365 for everyone interested. Each account is a slooooowwww process, so be patient here. We’ll try and have a team directory shortly.
What could possibly stop us?
Just us. We’re not blazing any new technical territory here, we can use the technologies we know or that we’re interested in. All of us are busy professionals, most of us have families also, and this will be way down on the priority scale. Keeping that in mind from the start, if we break down the work into small stories we can make great progress over a long timeframe.