The PVC frame for Neptune has been made a bunch smaller for maneuverability and I have finally installed and waterproofed the plexiglass window of the main tube. I have also figured out how I will be mounting the motors, and have already installed one.
On the software side, I have written an arduino library for the motor controller, and am in the process of writing a bootloader, which will allow me to program the main microcontroller over ethernet, as opposed to USB or serial port.
We started out on this project last summer with hopes of creating a CMS for a personal project of ours, a non-for-profit owned by one of our own. However, this CMS has taken over as our primary focus right now. It's utility both for our needs and the needs of others is evident to us and will hopefully also soon become evident to users of our system.
One big thing we plan to implement is Angular JS database hooks. With many common templated site systems one major feature is the ability to switch without worry from template to template, however currently we require manual content entry and operate as an editor but not as the software for transitioning. By using Angular to display content on our frontend we can pull from our Mongo setup and allow for content that stays as the templates change. We will need to load hooks from templates that have them and embed hooks for the database in templates that don't, all while making sure the user is able to edit and manage their content with ease.
Thus, we're working on hook merging, embedding, and creation for use with our provided templates and any side loaded templates. While this plan is one of our biggest steps yet, it will add the functionality and diversity of content that we were initially striving for.
We're looking to bringing to users, including professors soon, and hope to be able to keep working on this in the future.
(See you, space cowboy. - Mason)
It has been about a week since our first successful demonstration of Aro Alpha. At the start of the semester we wanted to develop a CMS that would be both simple, beautiful and powerful. In the course of a semester we have made pretty sound progress.
One of the first major milestones was the development of basic artwork and philosophy that describe the user's experience. We wanted a modern UI that contained everything a user would expect in a CMS and would be intuitive to navigate. Much of this effort came in the form of a universal side bar and dynamic toolbar. The sidebar contained just a few basic links to common tasks, such as new page creation and editing, and the top toolbar updated depending on which administrative view was being used. This allowed us to expose additional commands while keeping the UI clean. For example when the editor was opened the sidebar minimized itself and an icon corresponding to uploading the current document appeared in the toolbar.
Moreover we tried to keep the number of icons and options presented to a user minimal at all times while at the same time not burying import links in layers of pointless menus. For example in the editor window the user is only presented with a small toolbar in the top left that indicates they are in the editing mode, and gives options for the user to upload the page, reload it, or open it in a new tab. To actually expose the editing commands a user simply clicks the field he wishes to change and a more complex editor appears ready to accept input. We also implemented simple checks to attempt to load a more complex editor when appropriate, but otherwise present the user with as simple of an experience as possible.
The UI we demoed was clean, modern, and effective, in short exactly what we set out to achieve. While nothing is perfect our work on the front end is a good start.
On the back end things went quite well this semester. Plugin discovery and basic bindings were established and developed enough to be usable. True to our initial goal of modularity we proceeded to use these bindings to develop our admin system and content serving. While much work still has to be done to polish these systems our team was quite pleased with the current state.
Aro is far from complete but we have shown our project has promise and at the very least took a step toward our goal of destroying WordPress. One day, one day soon the world will be free of its terror.
So we demonstrated a working alpha for Aro (check out the screenshots for more info) and I thought it would be a good idea to do a quick overview of different technologies we have used.
The initial project goal was to create an extensible system with an intuitive user experience. This goal had a profound effect on the technologies we chose to leverage. To keep the system dynamic it became evident we would need a database structure that could handle a wide assortment of data.
At the heart of our system is the plugin system and its bindings that allow regulated access to a central database and filesystem. Since it would be impossible to predict the requirements or data types that will be used in future plugins it made sense to choose a database system that could adapt without requiring a massive table dump or routine maintenance. Since we were using Node to drive our CMS MongoDB seemed like a perfect fit.
Basically Mongo has a system of documents organized into collections each associated with a certain database. For SQL users documents are similar to tables, and documents rows except documents are far more flexible. Data in documents can be edited on the fly and it is possible to easily alter the structure of the document making it possible to rename fields, and new fields, etc without the need to rebuild everything from scratch.
In short MongoDB's flexibility keeps Aro on the mark.
This last week I finally got the log in system for android to work with my local server. The next step for me is to finish the logic for sending and pulling tags from the database. This should be a lot easier now since I understand how to send the JSON data to the server using HTTP POST. Overall RCOS has been a wonderful and interesting experience. It was my first semester in RCOS and I really enjoyed my time here. I've learned so much useful knowledge between working on my project and seeing what others were up to. I've already applied a lot of this knowledge to another project I'm starting for my fraternity. Working on this android app has really opened my eyes to mobile development and so I plan on continuing this path. I will continue to work on Tag-it over the winter break and hopefully I'll have a full functioning prototype by the start of next semester.