WAI WEBSITE DESIGN
"...sometimes the good is the enemy of the best." — Bill W
Design Overview
The Worcester Area Intergroup (WAI) website consists of:
- HTML and ASP.NET C# web pages
- Templates & responsive CSS
- JavaScript functions
- SQL databases
- User-supplied & canned content
Templates are used to format HTML web pages built mainly using ASP.NET and C# code. Responsee—cascading stylesheets + JavaScript libraries, from M.I.T.—provides responsive layouts for desktop, tablet and mobile devices. JavaScript is also used for other browser functions. Canned ASP.NET pages & content can be augmented or updated with user content or pages.
Site elements, page content, and configuration setings are stored in SQL databases and files:
- System database for user login & access
- Site database for site settings & content
- Root, subdirectories for root & user files
The WAI website runs under Microsoft IIS using SQL databases and user files for configuration settings and site data, and using 3rd party software for payment processing, online forms, maps/GPS navigation, a calendar, and SMTP & SMS for email & text messaging. Meeting Guide app connectivity is via a JSON text file of local AA meeting data.
The website is designed for and is itself a result of cloning, using root database entries, .NET pages, and canned content. Cloning entails copying root objects and default settings which, when combined with .NET pages and site-specific settings and a registered domain, results in a website. (Note: domain registration, hosting, SMTP setup may also be needed; for co-hosted clones, see also: Clones & Domains). Cloning is a standalone function that is not part of regular website functionality. Co-hosting clones allow 2+ AA sites (groups, service sites) to share costs & overhead yet remain autonomous.
Design Goals
WAI website design goals include:
- Serve WAI's primary purpose & AA traditions
- Enable regular AAs to maintain the site
- Support cloning (sites, pages, content)
- Support AA groups & WAI service entities
- Protect user anonymity & data integrity
- Shield users from harm (spam, malware)
- Enable web services (forms, transactions)
- Mimic paper-based & in-person transactions
- To be a power of example/proof of concept
Site Access | Menus | Pages
Website access is defines for three user types:
- Public Access — access to the general public
- Members Access — access to members only
- Admin Access — access to site admins only
A site can have unlimited public users, 1+ admins and 0+ members, as defined by group conscience.
Navigation menus and pages are type-specific:
- PUBLIC Menu: public pages & features
- MEMBER Menu: member pages+features
- ADMIN Menu: admin-only pages+features
When a member or admin logs out, site access, menus, and page content revert to PUBLIC.
For any cloned site, member accounts can only be created by admins, i.e., the webmaster, Web Chair, or a trusted servant. New admin accounts can only be created by an existing admin user.
Member accounts require no personal data, even an email address is optional. A shared login ("gsr", "dcm", "advisor") may be used for groups, or a login can be for one person.
Members can access public and member pages, and admins can access "admin" pages. Each AA group chooses which pages to have on its site. Public pages, when accessed by a member, may have added capabilities or content; e.g., a calendar may permit members to make updates or see member-only content. Providing members with choices, access, and information, while protecting them and the site, is a primary design feature.
Public Pages
- Home page
- About Us page
- Meeting List page
- Reference pages (e.g. this page)
Public+Member Pages
- Contacts page
- Calendar page
- Committee pages
- News/Announcement page
Member-Only Pages
- Member profile page
- Group roster page
- Group resources page
Admin Pages
- Admin Site page
- Site Configuration page
- User Admin page
- Resource Admin page
Other Site Elements
Virtually all site elements—logo, splash image, menus, pages—are database-driven. Page or content changes are made by updating the database or a user-supplied file (via an admin page).
Other elements "baked into" site access, pages , menus include the following:
Resources — documents, images, links, site content - can be uploaded by any member, if so desired. Or, a site can allow uploads but require an admin user to review and "activate" it. Or a site may only have admins update site content.
Groups & Roles (committees, secretary, GSR, etc) — can be defined and assigned/reassigned to member(s). Content (PDFs, images, etc) may be uploaded and publically shared or restricted to a group or role. Groups and roles support AA principles (service rotation, delegated authority, autonomy, anonymity, group conscience). Members control their personal data and visibility via a member profile. Members (will) control email from the site by opting in/out of emails or SMS "alerts" (alerts are intended mainly for admin notification).
Admins — trusted servants who maintain the site — have complete access to all site content except private member data; private member data is encrypted and accessible (in encrypted form) to admins and web hosting tech support only. Note: admins may not have access to the ISP hosting account items (account files, databases, email & FTP setup) in a shared hosting setup.
Site Types
A design goal is to create (or clone) websites that reflect each groups' needs and group conscience. AA entity types (districts, areas, intergroup, committees, conventions, etc) have distinct needs. Ideally, the design can support a website to match a group's specific (and changing) needs and group conscience.
Robust pages for news, calendar events, meetings, and AA contacts can support various AA entities and can be customized for a given entity.
Design Constraints
Language translation (e.g. Spanish, French, Portuguese) relies on the client browser, no server-side software or package is used.
This ASP.NET version relies on Microsoft IIS and Microsoft SQL Server for database functions; other .NET versions, hosting enviroments (.NET Core, Linux/Apache) and databases (MySQL, Oracle, etc) could be used. The implementation uses C#, but other programming languages (PHP, Python, JAVA, etc) could be used.
This implementation uses SMTP (Simple Mail Transfer Protocol) for email, but other email tools (Gmail, etc) could be used.
The design is simple but the software is vast, knowledge of C#, JavaScript, HTML, CSS, ASP.NET, and MS SQL is needed to modify or debug the software. However, simply maintaining the site — updating meetings, news, calendar events, pages or menus — does not require special knowledge or skills.
Web Servant & Fellowship Friend
###