Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   IT / Communications (http://www.chiefdelphi.com/forums/forumdisplay.php?f=85)
-   -   Team 254 Open-Source Release: Cheesy Parts (http://www.chiefdelphi.com/forums/showthread.php?t=117806)

godwinv 18-07-2013 00:03

Team 254 Open-Source Release: Cheesy Parts
 
1 Attachment(s)
Cheesy Parts is an open-source web-based system for tracking parts through the design and manufacture cycle. During some of the past seasons, we have had problems losing track of the progress of various parts, or whether we had the raw materials for them. To fix this, we wrote this web-based system during the offseason. It assigns part numbers with which CAD files can be saved to version control and stores information about parts' current manufacturing status.

Features include:
  • Tracking of part and assembly hierarchy
  • Part status tracking
  • Part metadata (notes, source material, cut length, quantity, priority, etc.)
  • Dashboard of all part statuses

The code is available at https://github.com/Team254/cheesy-parts. There is also a working demo available at http://parts-demo.team254.com (username "demo@team254.com", password "chezypofs").

Feedback and suggestions for improvement are welcome.

Attachment 15088

Akash Rastogi 18-07-2013 00:14

Re: Team 254 Open-Source Release: Cheesy Parts
 
Thanks a ton for publishing this, guys. I know many of us asked about this a few months ago, and I'm eager to check it out.

Thank you!

Grim Tuesday 18-07-2013 00:19

Re: Team 254 Open-Source Release: Cheesy Parts
 
This looks very neat and a great resource for teams!

Just a word of warning:

Our team tried to implement something like this with a physical "PARTS" (Parts and Resources Tracking System) board a few seasons ago. The theory was that the CAD team designs the part then deposits the drawing in a bin. A small tag on the corner of the drawing was generated from the part name based on a naming scheme (ie, shooter was CRR_SHO_001 or something like that). Implementing a naming scheme was a great idea because before that, we had a great deal of parts named "twistything.ipt". Anyways, the tag got cut out and pinned to a board with various tasks listed on it. All parts started in rough cutting and moved down towards finishing, with the person who did the work moving the tag to the next task. A corresponding tag was taped to the part.

In theory, the board worked great. There would always be work to do and people could see easily what needed to be done and the progress and congestion of our machining system. Unfortunately, it required an immense amount of babysitting and fell apart within the first week of heavy machining. People didn't move tags around and people relied on the system instead of the leaders to tell them what to do. When the system didn't work, things got stuck.

1. This can be solved by strong leadership and making sure everyone knows the ins, outs, and benefits of using a system like this. Industry uses stuff like this (we actually pulled our flowchart from one of our sponsors, which we saw when giving a demo there) but in industry, there are actually professional engineers and managers. It's difficult to get this kind of expertise and knowledge on an FRC team (though it certainly is possible in the culture of many teams - 254 is one of them and I respect them immensely for it).

2. It can also be solved by eliminating excess complication in the process: for us, that was removing the board from the system.

We replaced it with a shelf that drawings were placed on, and machinists could just pick up at their leisure to do. As the part got closer to completion it moved down the shelf. Top level was rough cutting, the next facing, the next drilling and so forth. There was no meta tracking system and it worked out better for us.

I guess the lessons we learned from our experiment was to eliminate steps that were unnecessary for our team and secondly, if we are implementing a new system, make sure the leaders remain just as strong and don't rely on it as a crutch.

Again, this looks like a really cool tool and I might prod my team to try another part management system, but I think it will be good to go into it with some prior knowledge.

DampRobot 18-07-2013 02:16

Re: Team 254 Open-Source Release: Cheesy Parts
 
Thank you immensely for posting this. I there any chance that there could be some integration with SolidWorks as you've done in years past?

Cory 18-07-2013 02:23

Re: Team 254 Open-Source Release: Cheesy Parts
 
Quote:

Originally Posted by DampRobot (Post 1283232)
Thank you immensely for posting this. I there any chance that there could be some integration with SolidWorks as you've done in years past?

That would be PDM, which is from Solidworks and natively integrated. Purely for revision control.

We want to see if there's a way to automatically pull completed drawings from the PDM vault once they're checked in, so that you have one less step to go from the part management system to making parts, but we haven't done that yet.

DampRobot 18-07-2013 02:26

Re: Team 254 Open-Source Release: Cheesy Parts
 
Quote:

Originally Posted by Cory (Post 1283233)
That would be PDM, which is from Solidworks and natively integrated. Purely for revision control.

We want to see if there's a way to automatically pull completed drawings from the PDM vault once they're checked in, so that you have one less step to go from the part management system to making parts, but we haven't done that yet.

Yeah, we've already implemented PDM fairly successfully. I was more thinking in terms of the system I believe you used to have, where new part numbers were natively assigned in SW. Doing that with drawings would be awesome too.

I agree with what others have said, these types of systems are great if everyone uses them correctly and buys into them. Usually, the easiest way to do this is to make everything is as easy as possible to do correctly.

Cory 18-07-2013 03:35

Re: Team 254 Open-Source Release: Cheesy Parts
 
Quote:

Originally Posted by DampRobot (Post 1283235)
Yeah, we've already implemented PDM fairly successfully. I was more thinking in terms of the system I believe you used to have, where new part numbers were natively assigned in SW. Doing that with drawings would be awesome too.

I agree with what others have said, these types of systems are great if everyone uses them correctly and buys into them. Usually, the easiest way to do this is to make everything is as easy as possible to do correctly.

We've never used SW to assign part numbers. It's been similar to the current system where the web app assigns you the next available number.

Michael Hill 18-07-2013 07:41

Re: Team 254 Open-Source Release: Cheesy Parts
 
Quote:

Originally Posted by Cory (Post 1283233)
That would be PDM, which is from Solidworks and natively integrated. Purely for revision control.

We want to see if there's a way to automatically pull completed drawings from the PDM vault once they're checked in, so that you have one less step to go from the part management system to making parts, but we haven't done that yet.

I have some code that extracts the images from solidworks drawings. I've been working on a PDM system inspired by 254 as well. Don't kill my computer (innovators.mooo.com). Click on Samples.

Basically, solidworks files are OLE files, so you need a library to deal with OLE files. With my PDM I'm setting up for next year, it directly interfaces with the Solidworks PDM. I've hardcoded it in my case (because...well...I just did). The only issue I'm having is that I have to rewrite my database every page load. This is because the Solidworks PDM stores data in a flat text file. When a part is updated, removed, or added, it's reflected in the flat file. I need a better way of "diff"ing the database and my flat file. If you have any ideas, that would be great. I could possibly copy the flat file and run some process in the background and look to see if something's been updated then update the database, but oh well.

Also, the PDM I'm working on will also pull out PDFs of drawings that are saved automagically.

Code:

import OleFileIO_PL

def getpng(request, project_id, partid):
        project = Project.objects.get(id = project_id)
        part = Part.objects.get(id = partid)
        filename = 'D:/VaultData/projects/'+project.name+'/'+part.fileName.replace('.','_')+'/'+part.revision+'/_'+part.fileName[-6:]
       
        try:
                with open(filename1): pass
        except:
                a=1
       
        if (filename):
                assert OleFileIO_PL.isOleFile(filename)
                ole = OleFileIO_PL.OleFileIO(filename)
                png = ole.openstream('PreviewPNG')
                data = png.read()
                return HttpResponse(data, mimetype="image/png")


techtiger1 18-07-2013 08:17

Re: Team 254 Open-Source Release: Cheesy Parts
 
Cory,

Once again I am floored by the professionalism of the poofs. Thank you for posting this, what a great way to keep things organized.

AdamHeard 18-07-2013 11:24

Re: Team 254 Open-Source Release: Cheesy Parts
 
Very cool.

tim-tim 18-07-2013 17:44

Re: Team 254 Open-Source Release: Cheesy Parts
 
Maybe it's just the mobile version (only thing I have to test at the moment), but every time I click I have to login again. Is this the intent, logging on at every mouse click?

roystur44 22-07-2013 16:37

Re: Team 254 Open-Source Release: Cheesy Parts
 
Feedback and suggestions for improvement are welcome.

[/ATTACH][/quote]

You guys are awesome. This would make a great cloud based app. Using a varbin type you could save binary file attachments(pdf, edrw, etc) and use the web browser as the viewer. Also being able to collapse an assembly to the parent part number is a desired feature. Also being able to attach a date with a widget when you edit the part status would be cool. Start and completion dates are always something that needs to be watched.

DampRobot 23-07-2013 01:10

Re: Team 254 Open-Source Release: Cheesy Parts
 
We're interested in running CP, but on a Windows Server (the same one we use for PDM). Do you have any tips? How do you run CP for yourselves?

Pat Fairbank 23-07-2013 16:03

Re: Team 254 Open-Source Release: Cheesy Parts
 
Yeah, PDM integration is something I'd like to add if possible. One issue we have is Cheesy Parts getting out of sync with the CAD because some people are too lazy to create entries in it before saving their parts to PDM (cough EJ cough), so being able to query PDM and automagically create Cheesy Parts entries in that case would be nice. It's not going to be a walk in the cake, though, since the only way I've heard of to integrate with PDM is through some .NET DLL.
Quote:

Originally Posted by DampRobot (Post 1283998)
We're interested in running CP, but on a Windows Server (the same one we use for PDM). Do you have any tips? How do you run CP for yourselves?

We're using a t1.micro EC2 instance running Ubuntu 12.04. It would probably be fairly trivial to deploy Cheesy Parts instead as a Heroku or AppFog app, though -- I just like the extra control that a virtual private server provides.

Zach O 23-07-2013 16:13

Re: Team 254 Open-Source Release: Cheesy Parts
 
Just curious - has anyone tried setting this up locally yet?

ejSabathia 23-07-2013 16:35

Re: Team 254 Open-Source Release: Cheesy Parts
 
Quote:

Originally Posted by Pat Fairbank (Post 1284089)
One issue we have is Cheesy Parts getting out of sync with the CAD because some people are too lazy to create entries in it before saving their parts to PDM (cough EJ cough), so being able to query PDM and automagically create Cheesy Parts entries in that case would be nice.

In my defense, I was supposed to have an assistant for that...

tim-tim 23-07-2013 16:41

Re: Team 254 Open-Source Release: Cheesy Parts
 
Quote:

Originally Posted by ejSabathia (Post 1284103)
In my defense, I was supposed to have an assistant for that...

You never gave me your login info...

DampRobot 23-07-2013 17:37

Re: Team 254 Open-Source Release: Cheesy Parts
 
Quote:

Originally Posted by Zach O (Post 1284091)
Just curious - has anyone tried setting this up locally yet?

Yes, although unsuccessfully so far. I'm trying to set it up in windows 7.

tickspe15 23-07-2013 17:38

Re: Team 254 Open-Source Release: Cheesy Parts
 
is the PDM software part of the package?

tim-tim 23-07-2013 17:48

Re: Team 254 Open-Source Release: Cheesy Parts
 
Quote:

Originally Posted by tickspe15 (Post 1284126)
is the PDM software part of the package?

I don't think so. I'm fairly confident the PDM software they use id available from SolidWorks. As of now, there is no direct integration between Cheesy Parts and the PDM. They are not linked.

protoserge 23-07-2013 18:15

Re: Team 254 Open-Source Release: Cheesy Parts
 
Has anyone tried this out yet? http://www.openplm.org/trac This might be a more interesting example: http://www.openplm.org/example3D/mendelmax2.html


I love how clean and intuitive Cheesy Parts is. Great work!

brennonbrimhall 24-07-2013 08:45

Re: Team 254 Open-Source Release: Cheesy Parts
 
Quote:

Originally Posted by Pat Fairbank (Post 1284089)
Yeah, PDM integration is something I'd like to add if possible. One issue we have is Cheesy Parts getting out of sync with the CAD because some people are too lazy to create entries in it before saving their parts to PDM (cough EJ cough), so being able to query PDM and automagically create Cheesy Parts entries in that case would be nice. It's not going to be a walk in the cake, though, since the only way I've heard of to integrate with PDM is through some .NET DLL.

Forgive me – as I'm a programmer first and foremost, and know next to nothing about Solidworks (we use Autodesk) – but couldn't you do something with git? It might be easier than interfacing with PDM – as there are plenty of projects like Github, Gitorious, Gitlab, etc. which could be used as a reference point. You could even update the status of each part by a prefix in the commit message or something. Just a thought.

DampRobot 24-07-2013 11:28

Re: Team 254 Open-Source Release: Cheesy Parts
 
I got it working late last night!



The main workaround that it required on windows was adding Spork to the gemfile. I tried a lot of fixes (for gems not loading, rake related errors, etc.), and I'm not 100% sure which ones ended up contributing to it actually working. Hopefully, I'll install it on our windows PDM server in the next few weeks, as well as better document the process for beginners.

Thanks again to Pat Fairbank! His support and help was extremely valuable to me.

DampRobot 24-07-2013 12:27

Re: Team 254 Open-Source Release: Cheesy Parts
 
Here's the process I used to get it working on my Windows 7 laptop.

First, download and install the programs listed on the CP README. I installed Ruby 1.9.3 using Ruby windows installer (or something like that). You're going to need an Oracle account to install MySQL, just do it even though creating new accounts is a hassle. I used default installation settings for both, and installed Ruby in C:\\Ruby193.

After installing Ruby, open up a Ruby command line. You're going to be doing a fair amount of work in this window. I believe now you have to type in "gem install bundler" to install bundler.

Then download the .zip of CP. I unzipped it and put it under C:\\Users\Damp. Then, open the folder "config" in the CP main folder, and double click on the eviornment.rb file to edit it. I just edited it in Wordpad, you'll have to tell Windows which program to edit in. Then, chose a port between 8000 and 10000 and enter it in the quotation marks for port (I used 8010). I put the DB_HOST as "localhost", and put in root and 1234 for the user and password I had set up earlier when installing MySQL. I don't think URL, Gmail and Gmail pass are neccesary, I just put down my Gmail anyway. I deleted anything in the WORDPRESS_AUTH_URL, to leave only two quotation marks, like this "". Save the file and continue.

I had to add a gem later to the gemfile, but I think you can do it now. This is to supplement a gem that only works on Linux and OSX with one that works on Windows. Open the gemfile in CP main (not the .LOCK one), and add this line:

gem 'spork', '~> 0.9.0'

Then, save the file and continue.

Next, you're going to have to change the directory you're working in, to the CP main folder. Do this using the cd command. I entered cd C:\\Users\Damp\cheesy-parts-main in the Ruby command line and hit enter. Then, per the README, I entered bundle install and hit enter. This should download the various gems that CP depends on. Next, type in bundle exec rake db:migrate, which at first brought up some rake errors. I believe I eventually solved them by forcing bundler to install diferent versions of the rake gem by editing the gemfile. Make sure that you don't have multiple instances of rake in the gemfile, this will mess things up. The version of the gemfile that finally worked didn't have any other rake gems besides the rake which was there in the first place, but the fix working might have depended on the rakes that I forcibly installed earlier. Go figure.

Then, run ruby parts_server_control.rb run. If everything went as planned, you should see some message about pressing CTL-C to stop the server if everything went as it should have.

At this point, go to your trusty web browser, and enter http://localhost:[port]. I entered http://localhost:8010. Hit enter, and the CP login page should pop up. At this point, you can login with the user and pass on the CP README, and create other users.

At this point, when I try to create a new part, I get MySQL errors. This might be me, or it might be the CP software. Pat says he's working on it.

This thing required about 8 hours of debugging for me, someone who has zero experience with ruby and MySQL. If I got an error, I'd google the important part of the message, and see what others had done. Sometimes, these fixes would work and sometimes they wouldn't. Again, I couldn't have done this without Pat's gracious help.

Jon Jack 24-07-2013 13:05

Re: Team 254 Open-Source Release: Cheesy Parts
 
Quote:

Originally Posted by brennonbrimhall (Post 1284214)
Forgive me – as I'm a programmer first and foremost, and know next to nothing about Solidworks (we use Autodesk) – but couldn't you do something with git? It might be easier than interfacing with PDM – as there are plenty of projects like Github, Gitorious, Gitlab, etc. which could be used as a reference point. You could even update the status of each part by a prefix in the commit message or something. Just a thought.

If you were interested in just checking in and out files, then yes you could use Git. However, Git is intended to be used with text files, not binary files like the ones created by SolidWorks.

In SolidWorks different files are associated with each other. For example, an Assembly will have many parts associated with it. Git has no way of recognizing these types of relationships. So if I'm using Git and I wanted to check out an assembly and all the parts associated with it, then I'd have to manually check out each part. If I wanted to do this in PDM then all I'd have to do is check out the assembly and check a box that checks out all associated files.

Pat Fairbank 24-07-2013 15:40

Re: Team 254 Open-Source Release: Cheesy Parts
 
Quote:

Originally Posted by Jon Jack (Post 1284278)
If you were interested in just checking in and out files, then yes you could use Git. However, Git is intended to be used with text files, not binary files like the ones created by SolidWorks.

In SolidWorks different files are associated with each other. For example, an Assembly will have many parts associated with it. Git has no way of recognizing these types of relationships. So if I'm using Git and I wanted to check out an assembly and all the parts associated with it, then I'd have to manually check out each part. If I wanted to do this in PDM then all I'd have to do is check out the assembly and check a box that checks out all associated files.

Plus Git's distributed nature makes it particularly ill-suited to storing CAD files (compared to SVN, for example). When you clone a Git repo, you're not only copying all the binary part/assembly files it contains, you're also downloading all their previous revisions in their entirety, since binary files don't diff well. This is probably measured in the tens of GB by the time a robot design nears completion.

brennonbrimhall 24-07-2013 17:05

Re: Team 254 Open-Source Release: Cheesy Parts
 
Quote:

Originally Posted by Jon Jack (Post 1284278)
If you were interested in just checking in and out files, then yes you could use Git. However, Git is intended to be used with text files, not binary files like the ones created by SolidWorks.

In SolidWorks different files are associated with each other. For example, an Assembly will have many parts associated with it. Git has no way of recognizing these types of relationships. So if I'm using Git and I wanted to check out an assembly and all the parts associated with it, then I'd have to manually check out each part. If I wanted to do this in PDM then all I'd have to do is check out the assembly and check a box that checks out all associated files.

Quote:

Originally Posted by Pat Fairbank (Post 1284324)
Plus Git's distributed nature makes it particularly ill-suited to storing CAD files (compared to SVN, for example). When you clone a Git repo, you're not only copying all the binary part/assembly files it contains, you're also downloading all their previous revisions in their entirety, since binary files don't diff well. This is probably measured in the tens of GB by the time a robot design nears completion.

Gotcha -- thanks for the feedback and explanation.

Zach O 25-07-2013 12:55

Re: Team 254 Open-Source Release: Cheesy Parts
 
Just got it running. Thanks Pat - this looks awesome.

Quick support question: When I try restarting/stopping/starting (after the first time) it using the parts_server_control script, I get an error

https://gist.github.com/ZachOrr/6081673

Suggestions?

DampRobot 25-07-2013 13:01

Re: Team 254 Open-Source Release: Cheesy Parts
 
Quote:

Originally Posted by Zach O (Post 1284466)
Just got it running. Thanks Pat - this looks awesome.

Quick support question: When I try restarting/stopping/starting (after the first time) it using the parts_server_control script, I get an error

https://gist.github.com/ZachOrr/6081673

Suggestions?

Did you try making a new part/assembly? When I tried, it gave me a MySQL error.

Zach O 25-07-2013 13:08

Re: Team 254 Open-Source Release: Cheesy Parts
 
Quote:

Originally Posted by DampRobot (Post 1284467)
Did you try making a new part/assembly? When I tried, it gave me a MySQL error.

Works fine for me. Is it a permissions problem with your MySQL database?

A quick bare-bones for setting up a MySQL server on Ubuntu https://gist.github.com/ZachOrr/6081773

(try the last command on that)

Andrew Schreiber 25-07-2013 15:15

Re: Team 254 Open-Source Release: Cheesy Parts
 
Quote:

Originally Posted by Jon Jack (Post 1284278)
If you were interested in just checking in and out files, then yes you could use Git. However, Git is intended to be used with text files, not binary files like the ones created by SolidWorks.

In SolidWorks different files are associated with each other. For example, an Assembly will have many parts associated with it. Git has no way of recognizing these types of relationships. So if I'm using Git and I wanted to check out an assembly and all the parts associated with it, then I'd have to manually check out each part. If I wanted to do this in PDM then all I'd have to do is check out the assembly and check a box that checks out all associated files.

There is a tool called git-annex that is meant to work with large binary files. I haven't personally set up a repository but I have had the experience of using it for a project at work. We were using it to track multiple terabytes of video data and it worked well.

jacob9706 25-07-2013 15:30

Re: Team 254 Open-Source Release: Cheesy Parts
 
Looks handy!
One sugestion I have is add the ability to upload a photo for each part. This would be great if students did not know a part by name and were able to see a cad drawing or a picture from a previous season related to the part when they clicked on a part!
Simple to implement but will drasticly improve the look and feel of the "part description" page!

Pat Fairbank 26-07-2013 01:25

Re: Team 254 Open-Source Release: Cheesy Parts
 
Quote:

Originally Posted by Zach O (Post 1284466)
Just got it running. Thanks Pat - this looks awesome.

Quick support question: When I try restarting/stopping/starting (after the first time) it using the parts_server_control script, I get an error

https://gist.github.com/ZachOrr/6081673

Suggestions?

Zach, I can't reproduce this -- maybe it's something to do with the way RVM handles gems? I just realized I'm not requiring "bundler/setup" at the top of the control script like I should be, so maybe just running it as "bundle exec ruby parts_server_control.rb" will do the trick.

Zach O 26-07-2013 11:10

Re: Team 254 Open-Source Release: Cheesy Parts
 
Quote:

Originally Posted by Pat Fairbank (Post 1284588)
Zach, I can't reproduce this -- maybe it's something to do with the way RVM handles gems? I just realized I'm not requiring "bundler/setup" at the top of the control script like I should be, so maybe just running it as "bundle exec ruby parts_server_control.rb" will do the trick.

Weird - running "bundle exec ruby parts_server_control.rb restart" told me it couldn't find the gems it needed, and prompted me to "bundle install", in which it reinstalled all the gems and will restart/start/stop properly now (with or without the bundle exec in front of the ruby command).

I wonder how I got it running in the first place. Anyways. Thank Pat!

DampRobot 26-07-2013 14:58

Re: Team 254 Open-Source Release: Cheesy Parts
 
Is rubygems.org down a lot? For some reason, it looks like I can't connect to it, and I can't ping it, although the rubygems.org site works just fine.

craigboez 13-08-2013 16:17

Re: Team 254 Open-Source Release: Cheesy Parts
 
254

Thanks for posting this. Its obvious that a lot of effort went into the development of this system. I've just finally gotten around to playing around with the working demo and am very impressed. While tinkering I came up with a few questions:
  • How do you integrate this with your purchasing group to procure all the raw materials and parts? It looks like some of the parts just have descriptions while some add a part number and/or manufacturer name. How does the person purchasing know what to order and where from?
  • Who is in charge of setting up new parts, choosing when to group things into a subassembly, what to name something, etc?
  • Who keeps this updated throughout the season? Is it one single person, a group? Is it updated hourly, daily, weekly?
  • Did this system solve the issues you were attempting to address?

My team tends to run pretty lean, and often the same mentors aren't there on consecutive nights. When that happens things slow down as we try to figure out what needs to happen next. A system like this could really help us keep things more focused from night to night. I'm curious to learn more about how you used it and how well it worked.

Pat Fairbank 14-08-2013 01:29

Re: Team 254 Open-Source Release: Cheesy Parts
 
Quote:

Originally Posted by craigboez (Post 1287117)
254

Thanks for posting this. Its obvious that a lot of effort went into the development of this system. I've just finally gotten around to playing around with the working demo and am very impressed. While tinkering I came up with a few questions:
  • How do you integrate this with your purchasing group to procure all the raw materials and parts? It looks like some of the parts just have descriptions while some add a part number and/or manufacturer name. How does the person purchasing know what to order and where from?
  • Who is in charge of setting up new parts, choosing when to group things into a subassembly, what to name something, etc?
  • Who keeps this updated throughout the season? Is it one single person, a group? Is it updated hourly, daily, weekly?
  • Did this system solve the issues you were attempting to address?

My team tends to run pretty lean, and often the same mentors aren't there on consecutive nights. When that happens things slow down as we try to figure out what needs to happen next. A system like this could really help us keep things more focused from night to night. I'm curious to learn more about how you used it and how well it worked.

Craig,

We didn't have purchasing integration for 2013, but we're working on it for 2014. We kept track of parts needing to be ordered in a Google spreadsheet, and someone would periodically check Cheesy Parts and make sure everything that was in "needs to be ordered" status was added to the spreadsheet. Obviously, this was a bit painful.

The designers each make the naming/grouping decisions for the parts that they are working on. The addition of the parts to the system is done sometime between when a file is created and when it is first saved to PDM. You can't really save something without knowing what to call it, and so since Cheesy Parts assigns the part numbers this pretty much enforces itself.

Everyone on the team has access to the system, so the responsibility for keeping it updated is shared. Generally, whoever worked on the part last is responsible for updating its status accordingly. This wasn't totally successful, but the worst offenders were some of the mentors...

I can't speak for the rest of the team, but in the project manager / shop supervisor role that I mostly find myself in during build season, it was a huge help when confronted with a bunch of students to find tasks for, and in keeping the stress levels down.

AdamHeard 14-08-2013 20:11

Re: Team 254 Open-Source Release: Cheesy Parts
 
For someone who has no idea what they're doing with websites, someone mind posting instructions on how to install this? As if I were five please.

DampRobot 14-08-2013 20:57

Re: Team 254 Open-Source Release: Cheesy Parts
 
Quote:

Originally Posted by AdamHeard (Post 1287294)
For someone who has no idea what they're doing with websites, someone mind posting instructions on how to install this? As if I were five please.

For just installing, see one of my previous posts on this thread. I have pretty much zero programming experience, so hopefully my instructions make sense for you.

Just FYI, I've had trouble reinstalling it after Pat updated the software, and haven't gotten it working since.

nicolelin 26-04-2014 03:13

Re: Team 254 Open-Source Release: Cheesy Parts
 
Quote:

Originally Posted by Zach O (Post 1284091)
Just curious - has anyone tried setting this up locally yet?

Yeah, my team is going to try to integrate this system into our management of parts. We've got it running on Linux (Ubuntu). It's much easier to install MySQL and actually start playing around with it

This is a super great idea, and thanks to the Poofs for releasing this open-source.

schlegels 20-10-2014 09:42

Re: Team 254 Open-Source Release: Cheesy Parts
 
Quote:

Originally Posted by AdamHeard (Post 1287294)
For someone who has no idea what they're doing with websites, someone mind posting instructions on how to install this? As if I were five please.

I'm in the same boat as you. I am hesitate to try and follow DampRobot's instructions unless I can get confirmation that he has been able to get it working again. Our kids would really like to get this up and running for the team but I'm not sure how to get it installed.

marshall 20-10-2014 10:44

Re: Team 254 Open-Source Release: Cheesy Parts
 
Quote:

Originally Posted by Pat Fairbank (Post 1284089)
Yeah, PDM integration is something I'd like to add if possible. One issue we have is Cheesy Parts getting out of sync with the CAD because some people are too lazy to create entries in it before saving their parts to PDM (cough EJ cough), so being able to query PDM and automagically create Cheesy Parts entries in that case would be nice. It's not going to be a walk in the cake, though, since the only way I've heard of to integrate with PDM is through some .NET DLL.

We're using a t1.micro EC2 instance running Ubuntu 12.04. It would probably be fairly trivial to deploy Cheesy Parts instead as a Heroku or AppFog app, though -- I just like the extra control that a virtual private server provides.

Thank you for posting this!

We're going to deploy this on Heroku and try to set it up. Our lead CAD mentor might be in touch with you guys for running PDM. We had a lot of issues with it last year and have abandoned it for now (Using Google Drive instead).

Also, for what it is worth, https://www.digitalocean.com is cheaper than Amazon for micro instance sized stuff and provides roughly the same amount of control. We run our primary site off of digital ocean. It's really because I'm a Linux Container nerd though and not so much about the price.

Also, it just so happens our other main mentor is a Ruby wizard so she is taking on setting this up on Heroku.

Again, thank you for posting this.

Jared 26-10-2014 17:08

Re: Team 254 Open-Source Release: Cheesy Parts
 
I'm having a hard time installing this. I've done it in the past on ubuntu, and everything worked the first time perfectly, but now I'm installing it on new machine, which doesn't have all the dependencies I usually work with.

When I run "bundle exec rake db:migrate", it fails, with the error "cannot load such file -- db". I've tried with ruby 1.9.1 and 1.9.3, and the same error happens. What am I missing?

Jared 26-10-2014 18:32

Re: Team 254 Open-Source Release: Cheesy Parts
 
Quote:

Originally Posted by Jared (Post 1405804)
I'm having a hard time installing this. I've done it in the past on ubuntu, and everything worked the first time perfectly, but now I'm installing it on new machine, which doesn't have all the dependencies I usually work with.

When I run "bundle exec rake db:migrate", it fails, with the error "cannot load such file -- db". I've tried with ruby 1.9.1 and 1.9.3, and the same error happens. What am I missing?

Things are messed up with relative paths in the requires for some reason.
I solved it by removing line 16 in the Rakefile (require "db"), and replacing
Code:

Sequel::Migrator.run(DB, "db/migrations")
with
Code:

Sequel::Migrator.run(Sequel.mysql2({ :host => "**host**", :user => "**mysql user**", :password => "**mysql  password**", :database => "**mysql database**" }), "db/migrations")
Replace the things surrounded by *'s with the actual values.

There was also an issue with require in the add starting user file. I needed to add a ./ before the path name.

Finally, the version of sequel (the ruby gem) that installed automatically was totally the wrong version and needed to be updated.


All times are GMT -5. The time now is 15:08.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi