 My name is Casper and I made a website to share electronics projects called KITNIC and you can visit it at KITNIC.it and these slides are available at the address printed there as well for future use. So the problem that the site is trying to address is as many of you will probably know there are loads of people sharing electronics projects online. I did a little bit of a survey and I found about 3,000 Kaikad projects on GitHub as well as 7,000 Eagle projects on Oshpark which has a little site where you can download, design and order them from Oshpark or download the Gerbers as well. There's about 9,000 shared projects so far and that's not counting all the other ways people share projects. So there's an image missing there. The image there is supposed to be of a Robert Pease project where there's just a load of wires everywhere. So the problem is that when people share projects online it's often really hard, they can be amazing and complicated but if you try and replicate the work it's often quite hard to find the right parts, to find the parts you actually need to replicate the project. So what I'm proposing is we have all these different ways of sharing and making projects and what I wanted to do was make something that would kind of filter all of that. I'm not quite sure why I picked this metaphor because I'm a vegetarian but I'd like to process all of this and what you really want is you want the board and you want the parts and you want the parts to make up that board. So kind of the starts of trying to solve this is I made the first part I made was a browser extension that could drive the retailer sites and then the second part was is the website I'm here to talk about. So the extension it tries to replicate the web requests that you send when you actually use the sites and add things to your shopping cart and it works for these five retailers listed there, Digikey, Mauser, RS and New York and Farnel. Now the reason it needs to be a browser extension rather than just a website is because there's something called the same origin policy which is security feature of your browser that another website can't just make you know change your session on another on a different website. So that's the reason it's an extension and you know that's is a useful kind of security feature. Now when you actually look at what your browser sends to add something to a shopping cart this is what I'd have to type at the command line to get to add something to the Mauser cart and probably not going to do that plus this goes about for about 4,000 characters at the bottom there for a kind of session storage bit. So I didn't I didn't really think it was going to be possible to do this and I thought well I'll give it a go I don't think it's going to work and you know the sites will probably change and it won't work anymore but my approach the approach I took was to do a lot of to start out with testing and have automated tests set up so that if something if the site changes or if something else changes I can keep I can make sure it works across all these different countries and different retailers and I can run these tests and keep on top of it and that turns out you know it works quite well they don't change the sites that often and I can the extension it works has been working for a few quite few years now it works quite well due to this approach I think. So this is what it looks like really what it what it is is a link from your spreadsheet to to your retailer shopping cart and you can you can kind of copy and paste from the spreadsheet and back and you've you can fill your shopping carts or MTO shopping carts with it there. So it's available for Chrome and Firefox takes in tab-separate values so when you actually when you copy and paste from a spreadsheet that's the storage format of the clipboard is actually tab separate values and it's quite and it's a simple format to pass and you don't have to worry about escaping because nobody will be putting tabs into there into their data hopefully I haven't found any yet. So you're able to add and remove from the cart I added a feature recently fairly recently where it actually searches octopart and fine chips to try and try and guess the part that you want if you haven't described it fully it works okay it's always worse it's worse double-checking what parts it's selected for you. It's open source and GitHub it's under a CPA license and it's got about 250 users and I'm not sure like on the extension on its own I'm not quite sure what kind of work really what they use it for mainly I haven't I haven't been able to quite ascertain that because this extension was out before I made the the website so it'd be interesting to see what people really use it for. So back to this awkward metaphor the we've got we've got a way to transfer the knowledge of what parts what part what what the parts you you bought to someone else and but what's kind of missing is is a sort of unified interface to both the the the board files and and the purchasing and that's what the website kitnick.it is supposed to provide and it's very very early days yet I've kind of released it before it's really ready what I decided on was the back end will be git repositories so you need you put your work into a git repository and then you you tell me the URL of your git repository and that way then it gets added it's a front end to that git repository really so we use tab separated values because that's what the extension works with and you know you use a you know there's a standard place to put these types of values as a one-click bill of materials.tsv at minimum you need references in quantity and or and the manufacturer part numbers so that's the minimum required if you if someone else wants to find out what parts to buy and I decided to standardize on RS 274 exgerbers and ex salon drills because that's what everyone uses to order their boards at the moment is newer and bet possibly better formats out there but none of their fabs are really using them yet so the website itself is it's all JavaScript for better or worse because I started off writing the extension I needed to use JavaScript I need JavaScript for the web front end so I was unless there's a really compelling you reason not to use JavaScript I decided I'll use JavaScript for everything I use a framework called react which is an open source kind of view framework here's the extension so the way the site is set up I make use of get our pages and Travis AI so get our pages as a way to host a static website on on GitHub itself on the get up infrastructure and you know it's free so I kind of abuse slash abuse the continue free continuous integration services and kind of hook it all together to rebuild the entire site any anytime anyone adds a project so if someone wants to add their project that they edit the file on get up GitHub and append the URL and that triggers off the continuous integration service to rebuild the entire site so obviously that's not going to scale but it works for now for the number of projects on there and yeah oh I found a really neat JavaScript JavaScript written in JavaScript Gerber renderer called PCV stack up which makes really good and accurate and nice renders of the Gerber files so that's what that's an example there so I'm gonna try and do a little bit of a live demo but since that image I'm not too hopeful since that image didn't load I might try and unplug this and see if that helps yeah this is I loaded this up before so this is what the site currently looks like I guess I won't be able to click on a project because I don't have internet yeah the cable may have come up I've just unplugged the cable should I replug it I just so I just talk about it there's actually a search interface at the top here so if I if I search for the uno that should still work but it's not loading it's not loading things right and shouldn't have done it live I don't see any lights come on there unfortunately I don't think that's true sorry my what ten minutes ago really jeez so we're going ahead right advanced maybe really ten minutes ago proceed jeez that should be all too that's automated that shouldn't happen my server must have been down that's me so this is a project on that this is a not sound synthesizer I believe so these are buttons to buy the parts and they'll be great if there's if the parts haven't been specified you can look at the bottom you can see what parts have been specified and haven't so these are the red means that only some of the parts have been specified it's gonna try and I did have this set up on my own laptop on a dev server which I would have preferred to use but there was no link from this out here anyway sorry about this I'm just gonna scroll to another project well let's go to the uno cuz that's like the running running one yeah yeah so that's got all the parts and we're gonna cheat let's try this and click on this that's gonna bring me to this and add all the parts with references added as line notes which is really handy when you get the parts so you know what's what I'm gonna go back to my presentation so this must be an image there but that's also not loaded so the the I think the real power of this is that you can you can make a kit without having to bag the components and you can you do your design you put it up and people can make it and that's really the that's that's really the power of this I think so it's sort of virtual kit so there's lots of it's kind of it's really early days and there's loads of things that could be added to this it's sort of minimal at this point we don't really have user accounts yet so really it would be a good idea if you if you log in and these are your projects and you can add and remove them yourself we could probably move away from using get necessarily if people don't want to because there are a lot of hardware engineers out there I believe that don't want to or can't and don't want to use get this should be an interface to versioning so you can tag versions and have different versions of the same project we could connect more directly to these PCB batching services so you don't need to just download the files necessarily but you could just click on it and order it I had an idea for an assembly aid that could go on the site which I've mocked up but also there's no picture for it but if you if you imagine the bill of materials and the board there you could hover over it and it could show you exactly where to put the part if you're if you're if you're soldering it yourself we could possibly connect it up to assembly services there's quite some quite modern assembly services that are trying to make it easier for people to have their projects assembled and they've shown some interest in in hooking this up to that the making of bill of materials is still quite quite tedious so there's this you we can definitely improve the tools to make those materials and make that easier I tried a little bit with that completion feature in the extension but it doesn't work that well yet and but there's there's other ways of going about that and another idea would be had to have life pricing data on the site and so you can see exactly where where where would be the cheapest to order this if you'd like to get involved add your project because I'm actually I'm running a little bit of a promotion at the moment I've got some batches from dangerous prototype so if you add your project I'll give you a $25 voucher for making the PCBs I've got 15 out of 20 left for that if you'd like to get do web development if you're able to develop web development or would like to learn this all of this is open source send me a message there's a lot a whole slew of features that that that are interesting and I'm sure you can think of your up your own as well so that's a really good way to get involved otherwise spread the word and tell people about it because really I'd like to get a bit of I'd like to get critical mass on this so that it becomes a central place for people to share electronics and making that sort of the deep we're not necessarily the default but a a conventional means to share electronics projects these are that's my contact info there and that's the Twitter handle we're on other social media as well I think that's the end of the talk