[http://trac.sahanapy.org/ Home] = Wiki Guidelines = == Page Standards == * At the top and bottom of each page there must be a link to the parent page in the hierachy * Below the header should be the page's title - which should match the Title used in the Link (after the parent page's name) * == Current Page Sections == === BluePrints === === Developer Guidelines === === Installation Guidelines === === Trac === === User Guideline === === Wiki === == Proposed Page Sections == === Specifications === Currently the BluePrints are a good place to collect ideas, user stories and drafting specification. However they generally lack the formality of specifications required for the development. For this reason it is proposed that Specification pages are created to support the development process. Typically the specification is NOT a technical document, and must be prepared with a non-technical audience in mind. Perhaps it would be more accurate to refer to them as "Functional Specifications". The exception is when the specification is referring to a framework component, when the "users" will be other developers.[[BR]] Joel Spolsky has good write-ups on why specifications are important and how to write them: * [http://www.joelonsoftware.com/articles/fog0000000035.html Painless Functional Specifications - Part 1: Why Bother?] * [http://www.joelonsoftware.com/articles/fog0000000036.html Painless Functional Specifications - Part 2: What's a Spec?] Although it is a BluePrints page, [BluePrintDecisionMakingTechnicalTwo] is a good example of a specification. The following template has been based on the sections from from this specification, plus a few others. ==== Specification Template ==== ===== History ===== A place to record the status and progress of the specification, especially review and approval from users/domain experts.[[BR]] yyyy-mm-dd[[BR]] [[BR]] ===== Overview ===== ===== Scenarios/User Stories ===== optional ===== Non Goals ===== optional[[BR]] What the system will NOT do. ===== Definitions ===== optional[[BR]] Of any new terminology in the specification ===== Users ===== What different types of users will be using the system? What tasks will they be performing? ===== Data Model ===== A list of the tables and fields that the system will include ===== Flowcharts ===== Optional[[BR]] Showing any complex navigation between screens or flow of algorithms. ===== Menu ===== For User Modules/Applications[[BR]] A hierarchical overview of all of the screens ===== Screens ===== For User Modules/Applications[[BR]] A detailed description (preferably with wire-frames) for all of the new screen in the system. ===== API ===== For Framework Modules [[BR]] The functions and other interfaces which other developers will use to interface with the system. This will be the starting point for the Code Documentation. ===== Technologies ===== Optional[[BR]] A list of specific libraries, APIs etc which will be used by the system. NOT including the standard SahanaPy Ones. ===== References ===== Optional[[BR]] Any external resources which may support of clarify this specification. ===== Open Issues ===== Optional[[BR]] Any unresolved issues or unanswered questions concerning the system. ===== Comments ===== A sections where people are able to leave informal comments on the specification.[[BR]] Although it may be difficult to start with, as we start having more specifications documented, it will become easier to write new ones as we will have more examples to refer to. === Code Documentation === === Technical Documentation === Features which don't involve using Python but are more advanced than the regular User's needs * Installation * Configuration * Themes (CSS?) * Menus * Web Services * Synchronization * Data Import/Export * Translation Guidelines === User Documentation === How do we want to present this? === Branches === Is it worthwhile for people to document any active branches to keep track of what people are working on and what new features are being introduced into the code. Or is Launchpad sufficient? === Deployments === Where SahanaPy is being used. This should link to the appropriate Branch, but ideally not be in technical language - it should be more promotional. === Contributors === Is is worthwhile for contributors too be able to have profile pages? it would be good to have some sort of contact directory. [http://trac.sahanapy.org/ Home]