Index by title

Deployment Instructions

Open Design Engine (ODE) uses Capistrano for code deployment. Capistrano is a developer tool for deploying web applications. It is typically installed on a workstation, and used to deploy code from your source code management (SCM) to one, or more servers.

Getting started

In order to deploy code to production servers, you must first have authorization to access the server. The simplest way to achieve access is to use SSH public/private key pairs so that you don't have to type the password each time. Because SSH is the transport for other services such as SCP (secure copy), SFTP (secure file transfer), and other services (SVN, etc), this can be very convenient and save you a lot of typing.

If your local username is different from your remote username, add -s user=<remote_user> to the beginning of the Capistrano commands.

Quick Deploy

To deploy, simply run:

cap production deploy

This command executes the following steps:

Rolling Back

If something goes wrong with the deployment, we can rollback to the previous release:

cap production deploy:rollback

The deployment script will keep the last 5 releases as apart of it's deployment process.

Database Backup

We can perform a database backup at anytime:

cap produciton db:dump 

Archiving

We can archive by tarring the current release directory with the archive command:

cap production archive name=0.1.0

This process with tar the current release directory and copy the tar file to the shared directory. In addition, it will download the tar file to your local tmp/ directory.


Development Plans

The original discussions about the development of ODE took place in Mach 30 meetings and on the CSTART forums and wiki. This work led to the development of the Guiding Values, Early Key Decisions, and Potential Features.

Roadmap Documentation

The following pages detail the goals and requirements for the software releases of ODE.


Development Setup

The following instructions are meant to help get the ODE application up and running on your local workstation. Note, these instructions assume you are setting up a development environment on Linux/OS X.

Prerequisites

Code checkout

To get started, create a local repository with svn checkout:

svn checkout https://opendesignengine.net/svn/ode/trunk

Create Development Database

You will need to setup a local development MySQL database and call it 'ode_development'.

To create the database, run the following commands:

mysql -u root -p

mysql> create database ode_development character set utf8;
mysql> create user 'ode_development'@'localhost' identified by 'my_password';
mysql> grant all privileges on ode_development.* to 'ode_development'@'localhost';
mysql> exit

Next we need to create a new database.yml so the application knows how to connect to the database. To accomplish this, simple copy the database.yml.exampe file:

cd trunk
cp config/database.yml.example config/database.yml

Under the development: section of the the config file, fill in the database name, username, and password.

Bundler

To install the required third-party gems to run the ODE application, we run the following Bundler command:

bundle install

Database Preparation

To prepare the database, we first need to run migrations:

RAILS_ENV=development rake db:migrate

and for the plugins:

RAILS_ENV=development rake db:migrate_plugins

We now need some seed data to get started:

RAILS_ENV=development rake db:seed

Running the Application

Now we should be ready to run the application locally:

RAILS_ENV=development script/server

If all goes well, you should be able to open the application at http://localhost:3000


DRAFT Terms of Service

This page contains the DRAFT Terms of Service for Open Design Engine. It is used to prepare the formatting before posting updates to the Terms of Service. See https://opendesignengine.net/terms for the live Terms of Service.

Terms of Service

Licensed under CC-BY-SA by Mach 30.

The following terms and conditions govern all use of the OpenDesignEngine.net website and all content, services and products available at or through the website. The Website is owned and operated by Mach 30 (“Mach 30”). The Website is offered subject to your acceptance without modification of all of the terms and conditions contained herein and all other operating rules, policies (including, without limitation, Mach 30’s Privacy Policy included below) and procedures that may be published from time to time on this Site by Mach 30 (collectively, the “Agreement”).

Please read this Agreement carefully before accessing or using the Website. By accessing or using any part of the Website, you agree to become bound by the terms and conditions of this agreement. If you do not agree to all the terms and conditions of this agreement, then you may not access the Website or use any services. If these terms and conditions are considered an offer by Mach 30, acceptance is expressly limited to these terms. The Website is available only to individuals who are at least 13 years old.

  1. Your OpenDesignEngine.net Account and Site. If you create a project on the Website, you are responsible for maintaining the security of your account and project, and you are fully responsible for all activities that occur under the account and any other actions taken in connection with the project. You must not describe or assign keywords to your project in a misleading or unlawful manner, including in a manner intended to trade on the name or reputation of others, and Mach 30 may change or remove any description or keyword that it considers inappropriate or unlawful, or otherwise likely to cause Mach 30 liability. You must immediately notify Mach 30 of any unauthorized uses of your project, your account or any other breaches of security. Mach 30 will not be liable for any acts or omissions by You, including any damages of any kind incurred as a result of such acts or omissions.
  2. Responsibility of Contributors. If you operate a project, comment on a project, post material to the Website, post links on the Website, or otherwise make (or allow any third party to make) material available by means of the Website (any such material, “Content”), You are entirely responsible for the content of, and any harm resulting from, that Content. That is the case regardless of whether the Content in question constitutes text, graphics, an audio file, or computer software. By making Content available, you represent and warrant that:
    1. the downloading, copying and use of the Content will not infringe the proprietary rights, including but not limited to the copyright, patent, trademark or trade secret rights, of any third party;
    2. if your employer has rights to intellectual property you create, you have either (i) received permission from your employer to post or make available the Content, including but not limited to any software, or (ii) secured from your employer a waiver as to all rights in or to the Content;
    3. you have fully complied with any third-party licenses relating to the Content, and have done all things necessary to successfully pass through to end users any required terms;
    4. the Content does not contain or install any viruses, worms, malware, Trojan horses or other harmful or destructive content;
    5. the Content is not spam, is not machine- or randomly-generated, and does not contain unethical or unwanted commercial content designed to drive traffic to third party sites or boost the search engine rankings of third party sites, or to further unlawful acts (such as phishing) or mislead recipients as to the source of the material (such as spoofing);
    6. the Content is not pornographic, does not contain threats or incite violence towards individuals or entities, and does not violate the privacy or publicity rights of any third party;
    7. your project is not being advertised via unwanted electronic messages such as spam links on newsgroups, email lists, projects and web sites, and similar unsolicited promotional methods;
    8. your project is not named in a manner that misleads your readers into thinking that you are another person or company. For example, your project’s URL or name is not the name of a person other than yourself or company other than your own; and
    9. you have, in the case of Content that includes computer code, accurately categorized and/or described the type, nature, uses and effects of the materials, whether requested to do so by Mach 30 or otherwise.
    10. the Content does not intimidate or harass another
    11. the Content does not include any personally identifiable information about persons under 13 years of age
    12. you have not used or attempted to use another's account, service, or personal information
  3. Licenses Associated With Content on the Websites and Services.
    1. Mach 30 Content: All Content (other than computer software) owned by Mach 30 and made available by Mach 30 on the Website or through the Services is licensed under the Creative Commons Attribution 3.0 Unported license, unless marked otherwise.
    2. Your Content: You retain the copyright in the Content you provide on the Websites or in connection with the Services. You hereby agree that all Content you voluntarily provide to Mach 30 on or through any Website or Service is licensed under an approved open source license (as listed on the Website), is not copyrightable, or is in the public domain. When you post your Content, you designate the relevant project as the “Attribution Party” for the purposes of the attribution licenses and grant permission for the relevant Website URI to be associated with your Content for purposes of that license. If Content you provide is protected by copyright, then if it is not licensed under an approved open source license, you must not provide it to Mach 30.
  4. Publishing Content. By submitting Content to Mach 30 for inclusion on your Website, you grant Mach 30 a world-wide, royalty-free, and non-exclusive license to reproduce, modify, adapt and publish the Content solely for the purpose of displaying, distributing and promoting your project. If you delete Content, Mach 30 will use reasonable efforts to remove it from the Website, but you acknowledge that caching or references to the Content may not be made immediately unavailable.
  5. Removal of Content. Without limiting any of those representations or warranties, Mach 30 has the right (though not the obligation) to, at Mach 30’s sole discretion (i) refuse or remove any content that, in Mach 30’s reasonable opinion, violates any Mach 30 policy or is in any way harmful or objectionable, or (ii) terminate or deny access to and use of the Website to any individual or entity for any reason, in Mach 30’s sole discretion. Mach 30 will have no obligation to provide a refund of any amounts previously paid.
  6. Responsibility of Website Visitors. Mach 30 has not reviewed, and cannot review, all of the material, including computer software, posted to the Website, and cannot therefore be responsible for that material’s content, use or effects. By operating the Website, Mach 30 does not represent or imply that it endorses the material there posted, or that it believes such material to be accurate, useful or non-harmful. You are responsible for taking precautions as necessary to protect yourself and your computer systems from viruses, worms, Trojan horses, and other harmful or destructive content. The Website may contain content that is offensive, indecent, or otherwise objectionable, as well as content containing technical inaccuracies, typographical mistakes, and other errors. The Website may also contain material that violates the privacy or publicity rights, or infringes the intellectual property and other proprietary rights, of third parties, or the downloading, copying or use of which is subject to additional terms and conditions, stated or unstated. Mach 30 disclaims any responsibility for any harm resulting from the use by visitors of the Website, or from any downloading by those visitors of content there posted.
  7. Content Posted on Other Websites. We have not reviewed, and cannot review, all of the material, including computer software, made available through the websites and webpages to which OpenDesignEngine.net links, and that link to OpenDesignEngine.net. Mach 30 does not have any control over those non-"Open Design Engine" websites and webpages, and is not responsible for their contents or their use. By linking to a non-"Open Design Engine" website or webpage, Mach 30 does not represent or imply that it endorses such website or webpage. You are responsible for taking precautions as necessary to protect yourself and your computer systems from viruses, worms, Trojan horses, and other harmful or destructive content. Mach 30 disclaims any responsibility for any harm resulting from your use of non-"Open Design Engine" websites and webpages.
  8. Copyright Infringement and DMCA Policy. As Mach 30 asks others to respect its intellectual property rights, it respects the intellectual property rights of others. If you believe that material located on or linked to by OpenDesignEngine.net violates your copyright, you are encouraged to notify Mach 30 by emailing dmca at opendesigneengine.net. Mach 30 will respond to all such notices, including as required or appropriate by removing the infringing material or disabling all links to the infringing material. Mach 30 will terminate a visitor’s access to and use of the Website if, under appropriate circumstances, the visitor is determined to be a repeat infringer of the copyrights or other intellectual property rights of Mach 30 or others. In the case of such termination, Mach 30 will have no obligation to provide a refund of any amounts previously paid to Mach 30.
  9. Intellectual Property. This Agreement does not transfer from Mach 30 to you any Mach 30 or third party intellectual property, and all right, title and interest in and to such property will remain (as between the parties) solely with Mach 30. Mach 30, Open Design Engine, OpenDesignEngine.net, the OpenDesignEngine.net logo, and all other trademarks, service marks, graphics and logos used in connection with OpenDesignEngine.net, or the Website are trademarks or registered trademarks of Mach 30 or Mach 30’s licensors. Other trademarks, service marks, graphics and logos used in connection with the Website may be the trademarks of other third parties. Your use of the Website grants you no right or license to reproduce or otherwise use any Mach 30 or third-party trademarks.
  10. Advertisements. Mach 30 reserves the right to display advertisements on your project.
  11. Changes. Mach 30 reserves the right, at its sole discretion, to modify or replace any part of this Agreement. It is your responsibility to check this Agreement periodically for changes. Your continued use of or access to the Website following the posting of any changes to this Agreement constitutes acceptance of those changes. Mach 30 may also, in the future, offer new services and/or features through the Website (including, the release of new tools and resources). Such new features and/or services shall be subject to the terms and conditions of this Agreement.
  12. Termination. Mach 30 may terminate your access to all or any part of the Website at any time, with or without cause, with or without notice, effective immediately. If you wish to terminate this Agreement or your OpenDesignEngine.net account (if you have one), you may simply discontinue using the Website. All provisions of this Agreement which by their nature should survive termination shall survive termination, including, without limitation, ownership provisions, warranty disclaimers, indemnity and limitations of liability.
  13. Disclaimer of Warranties. The Website is provided “as is”. Mach 30 and its suppliers and licensors hereby disclaim all warranties of any kind, express or implied, including, without limitation, the warranties of merchantability, fitness for a particular purpose and non-infringement. Neither Mach 30 nor its suppliers and licensors, makes any warranty that the Website will be error free or that access thereto will be continuous or uninterrupted. If you’re actually reading this, here’s a treat. You understand that you download from, or otherwise obtain content or services through, the Website at your own discretion and risk.
  14. Limitation of Liability. In no event will Mach 30, or its suppliers or licensors, be liable with respect to any subject matter of this agreement under any contract, negligence, strict liability or other legal or equitable theory for: (i) any special, incidental or consequential damages; (ii) the cost of procurement for substitute products or services; (iii) for interruption of use or loss or corruption of data; or (iv) for any amounts that exceed the fees paid by you to Mach 30 under this agreement during the twelve (12) month period prior to the cause of action. Mach 30 shall have no liability for any failure or delay due to matters beyond their reasonable control. The foregoing shall not apply to the extent prohibited by applicable law.
  15. General Representation and Warranty. You represent and warrant that (i) your use of the Website will be in strict accordance with the Mach 30 Privacy Policy, with this Agreement and with all applicable laws and regulations (including without limitation any local laws or regulations in your country, state, city, or other governmental area, regarding online conduct and acceptable content, and including all applicable laws regarding the transmission of technical data exported from the United States or the country in which you reside) and (ii) your use of the Website will not infringe or misappropriate the intellectual property rights of any third party.
  16. Indemnification. You agree to indemnify and hold harmless Mach 30, its contractors, and its licensors, and their respective directors, officers, employees and agents from and against any and all claims and expenses, including attorneys’ fees, arising out of your use of the Website, including but not limited to your violation of this Agreement.
  17. Miscellaneous. This Agreement constitutes the entire agreement between Mach 30 and you concerning the subject matter hereof, and they may only be modified by a written amendment signed by an authorized executive of Mach 30, or by the posting by Mach 30 of a revised version. Except to the extent applicable law, if any, provides otherwise, this Agreement, any access to or use of the Website will be governed by the laws of the state of Ohio, U.S.A., excluding its conflict of law provisions, and the proper venue for any disputes arising out of or relating to any of the same will be the state and federal courts located in Montgomery County, Ohio. Except for claims for injunctive or equitable relief or claims regarding intellectual property rights (which may be brought in any competent court without the posting of a bond), any dispute arising under this Agreement shall be finally settled in accordance with the Comprehensive Arbitration Rules of the Judicial Arbitration and Mediation Service, Inc. (“JAMS”) by three arbitrators appointed in accordance with such Rules. The arbitration shall take place in Dayton, Ohio, in the English language and the arbitral decision may be enforced in any court. The prevailing party in any action or proceeding to enforce this Agreement shall be entitled to costs and attorneys’ fees. If any part of this Agreement is held invalid or unenforceable, that part will be construed to reflect the parties’ original intent, and the remaining portions will remain in full force and effect. A waiver by either party of any term or condition of this Agreement or any breach thereof, in any one instance, will not waive such term or condition or any subsequent breach thereof. You may assign your rights under this Agreement to any party that consents to, and agrees to be bound by, its terms and conditions; Mach 30 may assign its rights under this Agreement without condition. This Agreement will be binding upon and will inure to the benefit of the parties, their successors and permitted assigns.
  18. Using these Terms of Service for Your Own Purposes. The Open Design Engine Terms of Service are licensed under a Creative Commons Attribution-ShareAlike 3.0 License. These Terms of Service are based upon the WordPress.com Terms of Service and the Creative Commons Terms of Use. You are free to use and adapt these Terms of Use for your own purposes. However, please keep in mind that these terms, as written, may not be completely suitable for your situation. Mach 30 strongly encourages you to seek the advice of your own attorney or counsel before using these Terms of Service.

Privacy Policy

Licensed under CC-BY-SA by Mach 30.

Your privacy is critically important to us. At Mach 30 we have a few fundamental principles:

Below is our privacy policy which incorporates these goals: (It is based upon Automattic's Privacy Policy and is licensed under the Creative Commons Attribution-ShareAlike 3.0 License)

Mach 30 (“Mach 30”) operates the website opendesignengine.net. It is Mach 30’s policy to respect your privacy regarding any information we may collect while operating our website.

Website Visitors
Like most website operators, Mach 30 collects non-personally-identifying information of the sort that web browsers and servers typically make available, such as the browser type, language preference, referring site, and the date and time of each visitor request. Mach 30’s purpose in collecting non-personally identifying information is to better understand how Mach 30’s visitors use its website. From time to time, Mach 30 may release non-personally-identifying information in the aggregate, e.g., by publishing a report on trends in the usage of its website.

Mach 30 also collects potentially personally-identifying information like Internet Protocol (IP) addresses for logged in users of OpenDesignEngine.net. Mach 30 only discloses logged in user IP addresses under the same circumstances that it uses and discloses personally-identifying information as described below.

Gathering of Personally-Identifying Information
Certain visitors to Mach 30’s websites choose to interact with Mach 30 in ways that require Mach 30 to gather personally-identifying information. The amount and type of information that Mach 30 gathers depends on the nature of the interaction. For example, we ask visitors who sign up for a project at OpenDesignEngine.net to provide a username and email address. Mach 30 does not disclose personally-identifying information other than as described below. And visitors can always refuse to supply personally-identifying information, with the caveat that it may prevent them from engaging in certain website-related activities.

Aggregated Statistics
Mach 30 may collect statistics about the behavior of visitors to its websites. For instance, Mach 30 may monitor the most popular projects on the OpenDesignEngine.net site. Mach 30 may display this information publicly or provide it to others. However, Mach 30 does not disclose personally-identifying information other than as described below.

Protection of Certain Personally-Identifying Information
Mach 30 discloses potentially personally-identifying and personally-identifying information only to those of its employees, contractors and affiliated organizations that (i) need to know that information in order to process it on Mach 30’s behalf or to provide services available at Mach 30’s websites, and (ii) that have agreed not to disclose it to others. Some of those employees, contractors and affiliated organizations may be located outside of your home country; by using Mach 30’s websites, you consent to the transfer of such information to them. Mach 30 will not rent or sell potentially personally-identifying and personally-identifying information to anyone. Other than to its employees, contractors and affiliated organizations, as described above, Mach 30 discloses potentially personally-identifying and personally-identifying information only in response to a subpoena, court order or other governmental request, or when Mach 30 believes in good faith that disclosure is reasonably necessary to protect the property or rights of Mach 30, third parties or the public at large. If you are a registered user of a Mach 30 website and have supplied your email address, Mach 30 may occasionally send you an email to tell you about new features, solicit your feedback, or just keep you up to date with what’s going on with Mach 30 and our projects. We primarily use our various project blogs to communicate this type of information, so we expect to keep this type of email to a minimum. If you send us a request (for example via a support email or via one of our feedback mechanisms), we reserve the right to publish it in order to help us clarify or respond to your request or to help us support other users. Mach 30 takes all measures reasonably necessary to protect against the unauthorized access, use, alteration or destruction of potentially personally-identifying and personally-identifying information.

Cookies
A cookie is a string of information that a website stores on a visitor’s computer, and that the visitor’s browser provides to the website each time the visitor returns. Mach 30 uses cookies to help Mach 30 identify and track visitors, their usage of Mach 30 websites, and their website access preferences. Mach 30 visitors who do not wish to have cookies placed on their computers should set their browsers to refuse cookies before using Mach 30’s websites, with the drawback that certain features of Mach 30’s websites may not function properly without the aid of cookies.

Business Transfers
If Mach 30, or substantially all of its assets were acquired, or in the unlikely event that Mach 30 goes out of business or enters bankruptcy, user information would be one of the assets that is transferred or acquired by a third party. You acknowledge that such transfers may occur, and that any acquirer of Mach 30 may continue to use your personal information as set forth in this policy.

Ads
Ads appearing on any of our websites may be delivered to users by advertising partners, who may set cookies. These cookies allow the ad server to recognize your computer each time they send you an online advertisement to compile information about you or others who use your computer. This information allows ad networks to, among other things, deliver targeted advertisements that they believe will be of most interest to you. This Privacy Policy covers the use of cookies by Mach 30 and does not cover the use of cookies by any advertisers.

Privacy Policy Changes
Although most changes are likely to be minor, Mach 30 may change its Privacy Policy from time to time, and in Mach 30’s sole discretion. Mach 30 encourages visitors to frequently check this page for any changes to its Privacy Policy. Your continued use of this site after any change in this Privacy Policy will constitute your acceptance of such change.

Change log

March 18, 2012 - Initial version of the Terms of Service and Privacy Policy.


Early Key Decisions

The following are the key decisions to made during the conceptual design of ODE, and the values that had to be balanced to make them.


Features

Embed YouTube Videos

{ {youtube(fciwFk0IfF8)} } (without the spaces) =>


Full Documentation

Embed Vimeo Videos

{ {vimeo(33510073)} } (without the spaces) =>

Embed Pledgie Badge

{ {pledgie(9822)} } (without the spaces) =>

click here to donate!

Embed Kickstarter Badge

{ {kickstarter(*account name*,*project name or url path*)} } (without the spaces) =>

examples:

{ {kickstarter(fallmedia,Alphabet Apparel)} }


{ {kickstarter(fallmedia,alphabet-apparel)} }

Embed Paypal Buttons

PayPal Button Types

{ {paypal_donate(*button id*)} } (without the spaces) =>

OR

{ {paypal_buynow(*button id*)} } (without the spaces) =>

OR

{ {paypal_cart(*button id*)} } (without the spaces) =>

button id is generated from PayPal
example where 7T7Z7DHEDQA6L becomes our button id

<form>
  ...
  <input type="hidden" name="hosted_button_id" value="7T7Z7DHEDQA6L">
  ...
</form>

Embed Issue Details

{ {issue_details(35)} } (without the spaces) =>

Sandbox - Support #35: This is a test issue for the sandbox - Needs estimate (New)
Full Documentation


<Project Name> Initial Questions vX.x

Project Background Questions

BQ1. Why are we making this?

BA1. ...

BQ2. Who is this for?

BA2. ...

BQ3. How will this be used?

BA3. ....

BQ4. Who's going to build this?

BA4. ...

Technical Requirement Questions

TQ1a. What features does it need to have (now)?

TA1a. The project needs to:

TQ1b. What features does it need to have (later)?

TA1b. In the future, the project (or related projects) may need to:

TQ2. What are the legacy requirements?

TA2. To maintain compatibility with other projects, the system should:

Project Requirement Questions

PQ1. How many do we want to make?

PA1. ...

PQ2. What is the budget?

PA2. ...

PQ3. What is the timeline?

PA3. ...

PQ4. What waste products will be produced by the manufacture and/or operation of this?

PA4. ...


Installation Instructions

Open Design Engine (ODE) is based on Redmine. The official installation method is to install the Bitnami Redmine Stack, apply some custom configuration to the stack, and then upgrade the installed Redmine instance to the ODE source code. Support for other stacks (or bootstrapped installations) will come with future releases. With luck, one or more of the stack providers will add ODE to their list of supported stacks.

If you're looking to upgrade from a previous version of ODE, see Upgrading ODE

Note, these instructions assume you are running the Ubuntu VM image of the Bitnami Redmine Stack and are running all commands under sudo. They were tested with version 1.1.3 in VMWare Player.

Useful Paths Steps to install ODE Sources
These installation instructions are based on a number of existing how-to's and postings on the internet. The sources include:

Navigation

<Project Name>

Documentation

  1. Bill of Materials
  2. Schematics and PCB Files
  3. Software Source Code
  4. Assembly Instructions
  5. Operating Manual
  6. Safety Procedures
  7. Software/Firmware Summary
  8. Errata

Systems Engineering Process

  1. Initial Questions
  2. Requirements Document
  3. Block Diagram
  4. Budget
  5. Timeline
  6. Preliminary Design
  7. Detailed Design
  8. Design Review
  9. Procurement
  10. Manufacture
  11. Integration
  12. Testing
  13. Disposal
  14. Development Logs
  15. Meeting Minutes/Notes
  16. Resources/Links

Potential Features

This page is listed for archival purposes only. Please add ideas for features as New Issues.


Release Testing

Introduction

The following test plan should be performed on any release candidate prior to scheduling an upgrade of the ODE server. It should again be performed on the live site once the upgrade is in place to ensure the upgrade was successful.

Required Browsers

All tests should be run from the following browser/OS combinations to ensure ODE works for a wide audience.

Browser Windows OS X Linux
Chrome X X X
Firefox X X X
Safari X
IE X

To be researched -

Features to Test

ODE features come in three categories. First is features which are built-in to Redmine core. Second is features from community developed plugins such as DMSF. And the third is features which were added using custom plugins from ODE development.

Redmine Core (RC)

  1. Projects
    1. Creation (test with several new projects, each with different features turned on and ensure the correct tabs are visible and appear to be functional)
    2. Create a subproject with New subproject" button on *Overview tab
    3. Attach a project as a subproject of another project from the Settings tab
  2. Wiki
    1. Creating wiki pages
    2. Editing wiki pages
    3. Reverting changes
    4. Adding and referencing attachments on wiki pages
    5. Viewing wiki pages
  3. Issues
    1. Creating issues
    2. Updating issues
    3. Assigning issues
    4. Closing issues
  4. News
    1. Posting News items
    2. Viewing News items from project Overview tab and from ODE homepage (all projects should feed here, so post news items from multiple projects and make sure they show up on home page and only on correct project page)
  5. Forums
    1. Creating forums
    2. Creating forum posts
    3. Replying to forum posts
    4. Viewing forum threads
  6. Repository
    1. TBD (create, list, update, etc)
  7. Users
    1. User creation
    2. User locking (make sure we can disable a user account)
    3. Password reset

Redmine Plugins (RP)

  1. DMSF
    1. Create directories
    2. Upload files to root directory
    3. Upload files to sub-directory
    4. Upload new version of files
    5. Download files
    6. Try and upload files without correct project membership (TODO - J needs to confirm the required membership)
    7. Delete files?
  2. Redmine_SCM / Redmine Checkout (SVN CRUD)
    1. Create a project with SVN support enabled and confirm the repository shows up in the Repository tab
    2. Run the SVN tests from the bottom of the Installation Instructions
    3. Repeat tests with a user who does not have sufficient privileges to commit and ensure read works and write fails (TODO - J needs to confirm the required membership)
  3. Redmine Hide Emails by Default
    1. Create new user and then browse to new user from a different account; verify new user's email address is not visible
  4. Redmine Wiki Issue Details
    1. { {issue_details(35)} } (without spaces) => Sandbox - Support #35: This is a test issue for the sandbox - Needs estimate (New)

ODE Plugins (OP)

  1. Redmine Funding
    1. Visit Features and ensure the following examples render
      1. Pledgie
      2. Kickstarter
      3. Paypal
  2. Redmine Video (extends a community plugin)
    1. Visit Features and ensure the following examples render
      1. Youtube
      2. Vimeo
  3. Redmine Legal
    1. Create a new user account and ensure you must agree to the terms of service to complete account creation
    2. Update the terms of service (there is a settings section under Admin to do this) and then login with an existing account and ensure you must agree to the updated terms of service to continue logging in
    3. Ensure the Terms of Service link in the footer works
    4. Ensure the Terms of Service page renders correctly for both the static display (when you click the link in the footer) and during account creation/login on updates
  4. Redmine Licensing
    1. Add new license to license list in Admin section and ensure it shows up on project Settings tab
    2. Update a license in the license list in the Admin section
    3. Ensure new projects must select at least one license
    4. Ensure a project's selected licenses render on the Overview tab
  5. Allow Private Projects
    1. Ensure the option to create a private project is not visible for new and existing users
    2. Assign private projects allowed privilege (under the users list in Admin) to a user and ensure that user can create a private project

<Project Name> Requirements vX.x

Technical Requirements

TR 1.1 <Short description>

<Full description>

TR 2.1 <Short description>

<Full description>

Project Requirements

PR 1.1 <Short description>

<Full description>

PR 2.1 <Short description>

<Full description>

PR 3.1 <Short description>

<Full description>

PR 4.1 <Short description>

<Full description>


Resources


Navigation

Documentation

Templates

About ODE

Other


Similar Sites


Navigation

<Project Name>

Documentation

  1. Bill of Materials
  2. Assembly Instructions
  3. Operating Manual
  4. Schematics and PCB Files
  5. Software Source Code
  6. Software/Firmware Summary
  7. Errata

Design Process

  1. Initial Questions
  2. Block Diagram
  3. Detailed Design
  4. Manufacture
  5. Integration
  6. Testing
  7. Meeting Minutes/Notes
  8. Resources/Links

Supporters

Sponsors


2011 KickStarter Backers

Adán Sánchez de Pedro Crespo
Adaptive Sensor
Adrion.biz
Amber Adams
analognode
Andre Knoerig
Andre Koot
Andreas Hoppler
Andrew Laughton
Andrew Sliwinski
Anthony Burns
Anthony Giancola
Antonin Paquet
Antonio Quirarte
Antonio Zugaldia
Ben Diedrich
bitbangerbob
Brandin Watson
Brendon
Brian Baker
Brian Enigma
Carl E. Jones
Carl Rigney
Chaim Krause
Cody Harrison
coffeehaus.com
Corey Hoard
corvus and columba ltd
Cytron Technologies
Daniel de Kock
David Hagn
David Hooper
David Lambert
Derek Bever
Derek Casari Dev Dir Federation of Galaxy Explorers
DIY Drones
Doug Jones
ECTOPUS
Evil Bekka
Florida Dream Homes
Gabe Ortiz
Gal Buki
Gary
Gautham Chandra
Gavin Hurlbut
Gene Foulk
Gilah Pomeranz
got-health.com
GrenDup
Gui Ambros
Hugh Reynolds
Icis Machine
Jalil Wahdatehagh
Jay Bryon
Joe (LVL1 Hacker place)
johan.cc
John Amschler
Jonas T. Anderson
Joppa Communications
Joshua Hohendorf
Julien Guigner
Justin Myers
Justin Wick
Karl Palutke
Ken
Lattra
Leonard Richardson
linlu
Lisa Englert
Make Make Place
Maria F. Kapaniri
Mariusz Sasinski
Mark Kizelshteyn
Matt Foster
Matteo
Matthew Petroff
Matthew Wilson
Maurice Perry
maxD
Michael Mary
Michael Messano
Mike Hadmack
Mike Grannis
Mikey Pechner
Mr & Mrs Norman R. Zickuhr
Nathan Caza
Nathan Loofbourrow
New Mexico Technology Council
Nicholas C Lewis
Ofelia Martinez & Steve Fields
OLogic, Inc.
palenoue
Pat S
Patrick Maloney
Paulo Marini
Pedro Perez de Ayala
Phil Culler
Philippe Chretien
Phillips Brothers Thrust Merchants
Pieco
pistachiopony.com
Project Persephone
Protospace.nl
Quelab
Randy Giesick
Reversity Ventures
Richard Neveau
Richard Wardlow
Robert Belknap
Robert Morgan
Robert Wood
Rocky & Christine Randalls
Romain Bazile
Scanner
Sharjeel Aziz
Shaun Houlihan
Sleeping Giant Guitars
Smoke DMT.
Snaju LLC
spark
Sparkle Labs
Steve Bennett
Steve Burdine
Steven Tighe
Subreptice
TAUTIC ELECTRONICS LLC
Ted Meyers
Timothy Noble
Tomasz Finc
TomTom Tommie
Trevor Lewis (757Labs)
Van
William Potash


Upgrading ODE

General Upgrade Notes

In general, there are 3 steps to upgrading to a new version of ODE.
  1. Back up the database
  2. Back up the folder ODE resides in
  3. Check your version of your web stack, and upgrade if necessary / desired. You may be required to upgrade due to a need for a newer version of one of the dependencies, such as Ruby or Rails. Instructions for upgrading Bitnami are found here
  4. Download the latest copy of ODE, and place it in the desired location. This should be in another location than the existing installation to avoid issues caused by files that should no longer exist.
  5. Copy over configuration files config/database.yml and config/configuration.yml into the new location's config directory.
  6. Copy over the files directory from the old copy to the new location.
  7. Execute migration scripts. The details of this step may vary, but usually at least will include
    rake db:migrate RAILS_ENV=production
    rake redmine:plugins:migrate RAILS_ENV=production
    

Upgrading from Redmine 1.X to 2.2

The following documentation is for the upgrade of the first release of ODE to a more modern version of Redmine. At the time the work was undertaken, the latest version of Redmine was 2.2, therefor these upgrade notes are focused on upgrading from the 1.x series of Redmine to 2.2. Many of these steps are similar to other upgrades, but since this is a major version upgrade, there will be additional items. The RedmineUpgrade article on the Redmine wiki goes through most of these steps, and is a good reference. Any occurrences of <ODE_ROOT> refer to the root directory of where the ODE codebase is located.

  1. Back up the database, running something like this:
    /usr/bin/mysqldump -u <username> -p<password> <ode_database> | gzip > /path/to/backup/db/ode_`date +%y_%m_%d`.sql.gz
  2. Back up the ODE installation directory:
    tar -czf /path/to/backup.tar.gz <ODE_ROOT>
  3. Perform stack upgrades. It is unlikely that this will not be required, due to version changes in Ruby and Rails. See #3 from the General Upgrade Notes.
  4. Download the latest copy of ODE into a new folder.
  5. Copy over configuration files config/database.yml and config/configuration.yml into the new location's config directory. If there are any changes from the default that were made to other files, such as config/settings.yml, these will have to be done by hand in the new config/settings.yml.
  6. Copy the files folder from the old <ODE_ROOT> to the new <ODE_ROOT>, or create a symlink.
  7. Execute the migration scripts. Since this is from the 1 to 2 series of Redmine, there's some extra steps that wouldn't need to be observed during other upgrades. The last two commands also clear the cache, as a just-in-case measure.
    rake generate_secret_token
    rake db:migrate RAILS_ENV=production
    rake redmine:plugins:migrate RAILS_ENV=production
    rake tmp:cache:clear
    rake tmp:sessions:clear
    

NOTE: If trying to view a file in DMSF return an error, you should run

rake redmine:dmsf_migrate_documents RAILS_ENV="production"
It seems sometimes the part of the database migration scripts for DMSF do not always run. Executing this script solves this issue.

You may see some error messages. While there are none that have been encountered thus far, the Redmine wiki on upgrading states some common ones, so check there first.


v0.1 - Private Alpha

Those features that can be implemented with existing, stable plugins will form the feature set for the Private Alpha Release (see the following blog post for a possible list of these plugins). Once these features can be packaged for release and installed on the live ODE site, visitors will be allowed to create accounts.

While all visitors may create accounts during this phase, project creation will be limited to system admins and invited users who will be added to the Testers role. This role will continue to be used to deploy new features to trusted community members for testing before deployment to the larger ODE community.


v0.2.1 - Public Beta Enhancements

This is an interim release to capture issues which were preventing v0.2 - Public Beta from launching. These issues are centered around adding version control systems and refining plugins developed for v0.2 - Public Beta.


v0.2 - Public Beta

This will be the first release to include significant new code from Mach 30 and ODE volunteers. The code will primarily come in the form of new plugins or contributions to existing plugins that did not make it into the Private Alpha and are deemed necessary for core functionality. New plugins will include an OSHW licensing plugin so hosted can be required to select an OSHW license for hardware projects or an OSI license for software projects (similar to http://sourceforge.net), and work on presentation. The exact set of features to be implemented is still being determined.

At the release of the Public Beta, all users will be allowed to create their own projects.


v0.3 - Sustainability Enhancements

The goal of v0.3 is to grow ODE from its current beta state to a vibrant and self-sustaining open source hardware community. To accomplish this goal, we will focus development efforts on obtaining IT support for features such as integrated git support, updating the visual aspects of the site to enhance the usability of the site, growing the user base through advertising and messaging, and developing multiple income streams to sustainably fund ODE.


v0.4 - Wiki Enhancements

This version will focus on adding features to the ODE wiki system. New features will include a templating engine that will support sharing templates with the ODE community, new formatting options, and better export support.


Versions

vX.x Description Documentation

Welcome to the Open Design Engine (ODE) project Wiki. This wiki contains documentation covering development, installation, and use (on your own server or at http://opendesignengine.net) of the Open Design Engine software. If you are interested in starting a hosted project, click here. ODE started as a proposed joint project between Mach 30 and CSTART. We hope it will grow to serve a wider audience and be used to host Open Source Hardware (and Software) projects of all kinds.

We like to think of Open Design Engine as the Source Forge for hardware. And while sites like Source Forge and LaunchPad are focusing on features to support software projects (such as demo web and database servers for web site projects), Open Design Engine is focused on the needs of hardware projects. Open Design Engine is built on Redmine (licensed under the GNU General Public License v2), and has support for common features such as source code repositories, wikis, forums, and issue tracking. ODE also has full sub-projects so teams can breakout their work along functional lines (such as software, electronics, and mechanical engineering) all under the heading of the main project. And Open Design Engine has a desktop like file management system for storing non-source files in a way that is more familiar to developers who come from disciplines beyond software development.

ODE is being distributed similar to Wordpress. That is, there will be a version available for download that users can install on their own servers (like http://wordpress.org) and a hosted version where users can register accounts and host projects (like http://wordpress.com).

Guiding Values

The following values are intended to shape the development of ODE. Ideally decisions will represent a balancing of multiple values. Note, these values were derived by reflecting on the views (or positions) presented during the early discussions about ODE at Mach 30 and CSTART. See the Mach 30 consensus process for more info on values and positions. Note, these values are listed in no particular order, the numbering is simply for easy reference.

  1. We need something that works better than what we have now - CSTART has the wiki+forums+polls+version control system?, Mach 30 has its forums+phone bridge
  2. Getting something sooner would be better than later - there is a sense that current projects will gain momentum from having the right tool for engineering management, which would be a "very good thing"
  3. It would be better if we can share the work and the rewards of developing this system - this includes both between CSTART and Mach 30 and with the larger open design/hardware community
  4. Release early, release often - this has been the mantra of other successful open source projects, and is in support of having something "sooner rather than later"
  5. The defining feature(s) include the ability to manage engineering decisions - we need to focus on those features that hardware projects need that platforms for open source software development do not provide
  6. The language used for the software must be one that is familiar to developers in our communities - you can't write in a language you don't know
  7. The choice of programming language (and other elements of the software stack) impacts the ability of users to self-host, and all other things being equal, the barrier to self-hosting should be as low as possible - this value strongly supports choosing tools that are widely available if at all possible (such as the LAMP stack)
  8. Proposed but not discussed - Site security and information assurance should be a high priority - organizations in the US will need their hosted versions of the tool to be secure enough to meet ITAR and other export control restrictions

See the links on the right hand side for more details on project development, installation, and use.


Wiki Navigation Templates

Instructions

To create a wiki Navigation bar, edit the wiki page named Sidebar. Then use one of the following templates to quickly setup your design process in the Navigation Bar.