Deep Blue Parts is a web-based system for tracking parts through the design and manufacture cycle. It assigns part numbers with which CAD files can be saved to version control and stores information about parts' current manufacturing status.
Deep Blue Parts is written in Ruby using the Sinatra framework and uses MySQL as the backing datastore. Development and production are run on UNIX (OS X and Ubuntu), so there are no guarantees it'll work on Windows, sorry.
Deep Blue Parts is built on Cheesy Parts, a wonderful tool written by Pat Fairbank at Team 254.
Our fork differs from 254's in a few ways:
- Users can edit their own account settings, including passwords, names, and one of several stylesheets.
- Workflow, status options, and other attributes are generally optimized for our team's resources.
- Secure file upload is added so that members with edit privileges may upload drawings, documentation, and toolpath files. Each part and assembly carries revision letters that are automatically managed by the program. Lite version control is offered, with the ability to restore previous revisions if user is an administrator.
- Slack and Trello integeration is offered, since our team uses both tools for communication and task tracking.
- Additional dashboards and reports are offered for use.
- DBP has been rewritten for compatibility with bootstrap 4.
- Redesigned ordering interface
- Mattermost bot integration
- Interface for use of COTS parts in assemblies
- Integration with GrabCAD or SW PDM
If you want to test-drive DBP, you can use Docker to quickly set up the server.
Prerequisites:
To run Deep Blue Parts in a container:
- Make sure Docker is running.
- Populate
config.json
with parameters for the dev and prod environments.config.json.docker
contains all the presets you would need to run with the provideddocker-compose.yml
. Feel free to change the database, username, and password fields, as long as you do it in both the config and compose files. - Run
docker-compose up -d web
. This will build and run your Deep Blue Parts server in the background. - Run
docker-compose run migrations
. This will perform the database migration operations that are needed. You may need to run this more than once if an error occurs. - You're now ready to access the DBP server at
localhost:9000
! - See the text below the Development instructions to login.
- When you want to stop the server, you can do so with
docker-compose down
.
Prerequisites:
- Ruby 2.3 and development packages
- Bundler
- MySQL and development packages
- g++ for installation of some dev packages (optional)
To run Deep Blue Parts locally:
- Create an empty MySQL database and a user account with full permissions on it.
- Populate
config.json
with the parameters for the development and production environments. Setenable_wordpress_auth
to false andmembers_url
to blank; they are used for a single sign-on (SSO) mechanism specific to Team 254. Make sure to add your Slack and Trello API tokens if using those features. - Run
bundle install
. This will download and install the gems that Deep Blue Parts depends on. - Run
bundle exec rake db:migrate
. This will run the database migrations to create the necessary tables in MySQL. - Run
ruby parts_server_control.rb <command>
to control the running of the Deep Blue Parts server, where<command>
can be one ofstart
|stop
|run
|restart
.
The database migration will create an admin account (username "[email protected]", password "shark-tank") that you can use to first get into the system and create other accounts. It is highly recommended that you delete this account after having created your own admin account.
Uploads are stored in uploads/
and at this time can only be directly managed by logging into your server.
If you encounter a bug, please create a GitHub issue and let us know so that we can look into it.
If you have a suggestion for a new feature in Cheesy Parts, create an issue on GitHub or shoot an e-mail to [email protected]. Or if you have some Ruby-fu and are feeling adventurous, fork Team 254 and send a pull request. If you are interested in adding to Deep Blue Parts, please contact Matt (@morops) or Cole (@icecube45).