Webdev:Flux:Steward Guidelines
So you want to Steward an externally created web property... eh?
Concerns
- What is the URL for the site?
- Is there a Project Tracking Bug
- Does it cover requirements?
- Will this be localized
- Every project must be localizable (under consideration)
- Notify Teams Early
- WebQA
- Infrasec
- Legal/Privacy
- L10n
- IT
- Lifecycle
- All phases defined and built by agency
- Who supports the site / fixes bugs post-launch? Agency? Mozilla dev?
- Ideal scenario: the agency will perform QA before handing off code to Mozilla and fix bugs both during Mozilla QA and for a period post-launch. This should be agreed upon before dev work begins and outlined in the SOW.
- End of life (campaign end date, takedown date)
Contractor Requirements Documents
When contracting creative and development work to third party vendors, these are the requirements that should be sent to vendor and included in the contract/statement of work.
- Security Vendor Evaluation - an outline of security questions we should be asking internally before hiring a vender. Should include details from Contract Points in the SOW.
- Frontend Coding Standards
- Secure Coding Guidelines
- L10n requirements
Typical Requirement Areas
- Authentication/Authorization
- Community moderation
- Developed in Python/Django using Playdoh for rapid development.
- Webtrend Analytics
- Responsys - Allowing members to signup for mailing lists.
Process
- Create a wiki page for this website, if not already available.
- Create a new Component in Bugzilla
- Create a Github repo for this project; grant access to team members.
- Create a Bugzilla tracking ticket for this project. Will track:
- Create a Bugzilla ticket to document the End of Life process.
- Create a Bugzilla ticket to add Webtrends analytics code.
- Create a Bugzilla ticket for Privacy and Legal review.
- Create a Bugzilla ticket for Security review.
- Create a Bugzilla ticket to ensure that all config settings that will need to be updated have been added to the appropriate -dist file.
- Create a Bugzilla ticket to setup a stage server. Ticket Text
- Add site info to WhoWorksOnWhat
- Place HTTP Auth password (if available) on Stage Credentials page.
Stage Server Ticket
(This is a placeholder to create a stage instance for this project.)
Please create a stage instance for {Website Name}.
== Language ==
* Language: Python
* Framework: Django
== URL ==
* Production URL: {URL}
* Stage URL: {URL}
== HTTP Auth ==
* HTTP Auth is required to access this site.
* Please record username / password in this ticket.
== SSL ==
* SSL is required for testing the stage site.
== Code Repository ==
* Github Repo: {URL}
* Setup Github to auto-update every 5 minutes.
== Database ==
* This site requires a MySQL database.
== Settings ==
* cp settings_local.py-dist settings_local.py
* Update settings values accordingly.
* Set DEBUG to False in settings_local.py.
Code Repository
- First, determine if this project will be developed publicly or privately.
- All web projects will be hosted on Github.
- Create repo (private or public) under the mozilla organization
- Create a Team and add the external developers who will be the owner of the project through development
- Add Webdev and IT_Operations teams to the project
- If this is a private project, ensure that the code repository is also private until launch. Once launched, make the repo public.
Code Review
- Follow WebAppSec/Secure_Coding_Guidelines
- Follow WebDev:FrontendCodeStandards
- Hosting requirements
- Scalability concerns?
- Code review process?