Neoturbine v5
From Wikiturbine
Neoturbine v5 (also known as Codename Seti and Project Resurrection) is a project aimed at creating a Neoturbine website that would tie in with the NeoturbineNET IRC community. The effort towards this project began in December of 2007. This page serves as the main documentation of the project's progress and a portal to all project components (prefixed with the namespace Seti: for structural reasons).
A few notes about organization:
- All of the pages directly related to this project should begin with the namespace Seti:. Any page that is a proposal write-up should begin with Writeup:. This is to keep the main namespace pages separate, which serve as either informational pages or portals to other projects.
- Keep discussions in talk and notify developers so that we remember to look at them.
Contents |
[edit] Overview and Goals
Ever since our beginnings circa 2001, neoturbine.net has existed as several versions of half-finished and abandoned websites. The common reasons for this seem to be a lack of organization, personal time constrains of development members (such as school and work), arguments, and lack of direction. Yet, the network has survived due to a personal attachment that most of us members have to it (and the fact that we pay for the damn domain name). This attachment has been strengthened as we have abandoned our goal as a web development team and became an IRC community. This community has attracted a handful of external members that now share their projects, help each other, chat, and even meet up (for events such as Neocon). Now, more than ever, we wish to see a website completed, yet once again we are starting to fail under our shortcomings. As discussion of this project began around fall of 2007, it evolved from Steve's request to resurrect the site, then formalized by Dmitriy's write-up and supplemented by Joe's. These write-ups all boil down the following key goals that we more or less agree upon:
- Our new website should reflect the fact that Neoturbine is an IRC community (see the tavern and scrap box analogies here). As such, the new website should:
- Have member profiles
- Link to member and community projects (and expect a link back)
- Be inviting to new members that hear about us and visit our website
- Offer services to members. These include things such as Neoradio, URL redirection and webmail
- Provide ways for people to share and help each other (mainly via IRC)
- Notify members and visitors of our events (such as Neocon)
- The website should be made in a way that would allow us to build-up and expand rather than resort to tear-downs if we want to change things.
- Keep in mind privacy concerns that some members might have about their personal information with privacy settings and various forms of security.
- Link our other components such as this wiki and the QDB
- Attempt to complete the website by remembering why we failed before and trying to work around it. This should mainly be done with these pitfalls in mind:
- Not everyone can get together online to collaborate at the same time. This is due to work, school and the fact that our breaks do not give us a good window to work on this.
- Lack of communication means that when some people return after some time to work on the website they become lost when changes are made.
- Not everyone has the willpower to complete big chunks of code, or complete them well.
- We do not document our progress and tend to jump at a project without considerable planning.
These pitfalls should resolved with our use of CakePHP, SVN and this wiki. See the Timeline below for the project's chronological breakdown.
[edit] Roadmap
[edit] Checklist of Features
This is a rough list of features on the website in v5 based on write-ups, the goals above, and any considerations as we go along. This should be re-organized based on how soon it should be implemented.
[edit] Vital
We can't do without these:
- Textual information on the public website this includes but not limited to:
- IRC info - how to connect, server stats, client recommendations
- Neoturbine info - short history and/or bio paragraph
- Contact info - webmaster's email
- Unified styling rules - allows for other css
- Project organization and documentation (use of the wiki)
- Version control for all files
[edit] Important
We should be careful doing these right:
- Members log-in which includes
- Profile editing
- Privacy options
- Admin controls (for admins) - edit/delete/add users
- Options for services
- Options for profile add-ons (tier 3)
- Authentication
- 3-tier system implementation(described below in this section)
- Vital Tier 2 models
- Private site data (profiles, sites) on the public site
[edit] Optional
- An API for those who want to make Tier 3 functions
[edit] Timeline
- Figure out what we would like to see on the website and assign priorities to these features. Add these to the feature list above.
- Formalize what should be included on the public website (including what is pulled from the private site)
- Formalize what should be vitally included in tiers 1 and 2 on the private site
- Write documentation for tier 1 and 2 members. This should include member variables and description of member functions using appropriate templates. This should have a sort of "Java API" feel, allowing us to know what operations we have available and what we should expect each operation to perform. This also keeps the abstraction of the models apart from the implementation.
- Consider any security holes we might have to this point, fix anything that comes to mind.
- Assign work. Each person should have a portion that could be independently tested via unit tests. Main work breakpoints are the public website and tier 1&2 members. We know what we would like to get done here in terms of abstraction and now make the implementation.
- Do individual work and keep track of changes and completion.
- Test things.
- Make things pretty.
- Release the site to our 1st members to test out, fix any holes.
- Begin to document and implement additional features.
[edit] The Neoverse
The Neoverse refers to the Neoturbine network as a whole. This abstraction places the Neoturbine website in the middle and connects it to member websites and own services as nodes.
[edit] The Neoturbine Website
This project breaks the website into a public portion (accessible by anyone) and a private potion (available to registered members) in order to fulfill the goals discussed in the project overview. The website serves informational, social and interactive purposes for the community. The Neoverse is represented graphically here.
[edit] Public Site
The public website is the logical portion of the website that is accessible in whole by any visitor. It provides information about our IRC network, our services, public statistics, and any data from the private counterpart we deem to be acceptable as safe to display to the public (restricted member profiles, linked websites).
[edit] Major Divisions
- Home Page and Blog - This is probably just updates and statistics that go on the home page. Keep in mind that the homepage should entice people to explore
- Member Login
- IRC Section
- Community Section - After we give it a formal name, this section will pull together a list of members and notable websites we affiliate ourselves with as a start.
- About and Contact Us Pages
[edit] Private Site
The private site is where our members will be able to access and update their profile, interact with our services and connect to other members.
[edit] Tier 1 - The Base
This is basically two things:
- CakePHP Software
- Auxiliary Functions
As of now, I cannot think of specific functions that we would like to include at this level, but if they were to exist, they would tie Tier 2 objects together in some way.
[edit] Tier 2 - The Inner Network
This is where the fun begins. Tier 2 hosts all of the major abstract models for the private website and provides the basic functionality to the website. These models have their own variables and functions and are able to interact with each other. Tier 2 also includes the user interface which will serve as a view for manipulating tier 2 and 3 models.
[edit] Models
- Servers
- Users
- These might be combined as we go along:
- Profiles
- Authentication
- IRC Settings
- Privacy
- Administration
- Network Services
[edit] User Interface
The interface will abstractly interact with the models as shown here.
[edit] Tier 3 - Outer Network
This tier will include any models that add functionality and interact with tier 2 models, but are not as vital to the functionality of the system. These will either be made by Neoturbine members themselves or adapted from 3rd party sources.
- Neoturbine Modules
- 3rd Party Modules
[edit] NeoturbineNET Services
These subsections of the main site will be linked from the public website and contain relevant information for public visitors. Members will be able to edit any relevant options for any of these services via the user interface.
- IRC
- NeoRadio
- Webmail
- Wikiturbine
- QDB
- URL Redirect / Hosting
- NeoCon
[edit] Members' Websites
The members' websites constitute for the network part of the Neoverse. These include member blogs, projects and personal sites as well as an works that the members deem worth linking in. Many of these will be reflected on the members' profiles and the community page.
[edit] Project Write-Ups
Note: all of the write-ups must have the prefix Writeup:. Those related to Seti will later be categorized as such.
- Resurrecting - 1st public-edit project layout cleaned up by DimaV, DEPRECATED
- Subversion - SVN information
- Neoturbine v5 - Dmitriy's Proposals
- Neoturbine v5v2 - Joseph's Version (PLEASE DON'T EDIT FOR NOW --Sargas 21:31, 25 February 2008 (EST))
- Planning Members - Summary of member section ideas
- Servers module - stiv2k's writeup
- 2008SummerChecklist - Productivity kick-off for summer 2008