190 likes | 287 Views
Yesdatabas. Team Void Main. Team Members. Daniel Meteyer. Michael Martin. Corey McClymonds. Patrick Stetter. Summary. Yesdatabas is a fully customizable Content Management System Written in Ruby on Rails
E N D
Yesdatabas Team Void Main
Team Members Daniel Meteyer Michael Martin Corey McClymonds Patrick Stetter
Summary • Yesdatabas is a fully customizable Content Management System • Written in Ruby on Rails • Intended to be used for clubs and other small organizations to maintain and update member data • First implementation will be with RPI’s Red and White club • Project took around 13 weeks • Used the Unified Process for software development
MVC Architecture Model/View/Controller
Design Pattern Selection • Yesdatabas uses Ruby on Rails • Ruby on Rails uses the MVC design pattern • Model • Describes data storage and relations • View • Presents data found in the model in a view for users • Controller • Manipulates data found in the model according to instructions from the software and user • Selected before we even knew what design patterns were • By choosing Ruby on Rails as our language/environment! • Made development easier • Ruby generates views and controllers based on the model creation • Concept called scaffolding
Unified Process 4 Stages of Development
Inception – Getting the Ball Rolling • Our Vision • Easily navigable and secure website • Functionality for exportation (to a format readable by Excel) • Two actors • Users who only view and control their own data • Administrators who create users, manage data fields and edit user data when necessary • A database to store all of user data • Customizable design i.e., fonts, colors, formatting, etc. • Compatible with RPI’s web servers • A big risk for our project • Accomplishments • Set up Ruby environment and created a new project • Obstacles • Finding time to meet around busy schedules
Elaboration – Building a Foundation • Vision • A somewhat functional website • Accomplishments • Finalized Use Cases • Began diagramming our system • Experimented with Ruby • Very straight forward • Improved level of communication • Bi-weekly meetings • Formerly just weekly • Obstacles • Overcoming Spring Break slump • Getting our hands dirty with code
Construction – Cranking it Out • Vision • Functional beta release deliverable by the deadline • Accomplishments • Implemented most required features • Completed class and sequence diagrams • Coded on our own time • Not at meetings • Designed a relevant test plan • Manual step-by-step testing of the CMS • Obstacles • Integrating all the controllers • Adding features in a manner consistent with our Use Cases • Code reviewed by team Thoughtbean • Provided honest and helpful criticism • Helped us realize that our code needed commenting and tidying up
Transition – Wrapping Things Up • Vision • Fully functioning content management system • Accomplishments • Worked out all the bugs • Created user documentation • Ruby on Rails installation • Yesdatabas installation • Using our software • Reviewed final test results • Secure and functional! • Presentable • Obstacles • Completing deliverables while working on the presentation
Yesdatabasin Depth Further Explanation with Live Demo
SVN History • Insert Video of SVN History
Benefits Of Our Software • Installable • Instructions found in documentation • Minimal command line statements to get running • Customizable • Uploading a CSS to match your organization’s colors • Flexible • Custom data fields • Compatible • With RPI’s web server • Lightweight • Software takes roughly 2MB of disk space • Modifiable • Future updates likely
Best Practices – How They Helped • Google Code • Wiki • Posting project notes • Rough draft of deliverables • Links to resources • Repository • Pulling latest version of software • Committing work • Bug tracking • Posted bugs we identified • More convenient than using email discussions • Coding Standards • Made code easy to read for our team and others who reviewed it • Third Party Tool • B-crypt allowed use to make our password storage secure • Design Pattern • Better than developing entirely from scratch • Kept us focused • What the user model was and was not • How we ought to view user data • How the data ought to be controlled through the view
Conclusion Final Thoughts
What We Learned • Mistakes Made • Tried to use our own phases/iteration schedule • Did not work • Switched to the suggested class schedule in April • Jumped the gun on some Ruby coding • Could have taken more time familiarize with naming conventions • All naming problems eventually fixed • Lessons Learned • Software development encompasses much more than programming • Without direction, a project is doomed to fail • Organization and deadlines are crucial to success • Communication is essential for teamwork • Honesty with teammates and managers is important • In this case, replace managers with instructors/TA’s • Diagramming with UML can be fun!
Future of Yesdatabas • Add an alumnus account • Can view all user data but may not modify it • Embed a Google Calendar • Put on homepage • Use for your organization’s events • Implement Attendance functionality • Record meeting attendance for members/users • Generate attendance reports
Thanks for Listening! Team Void Main