WEB SITE DESIGN OVERVIEW "The good can be the enemy of the best." - Bill W Worcester Area Intergroup's web site consists of: o HTML and ASP.NET C# web pages o JavaScript functions o Responsive CSS layouts o User-supplied & canned content Web pages apply templates to HTML content, using ASP.NET and C# functionality. Responsee (open source stylesheets and JavaScript libraries from M.I.T.) provides responsive layouts for desktop, tablet and mobile devices. JavaScript is also used for other browser (client-side) functions. Site elements, content, and configuration setings are stored in SQL databases, supplemented by root and user files: o system database for user login & access o site database for site settings & content o root & subdirectories for root+user files The site uses Microsoft Windows for a hosting environment, SQL databases for site content and management, and 3rd party software for payment processing, SMTP & SMS messaging, forms, calendar and maps/GPS navigation. The Meeting Guide app is updated via a JSON text file of extracted WAI meeting data. The web site is designed for (and is itself an instance of) cloning, using root database entries, ASP.NET pages, and canned content. Cloning entails copying root objects and default settings which, when combined with asp.net pages and group-specific settings, content, and a domain/UR, constitutes a website. (Note: domain registration, hosting, SMTP email, SMS setup may also be needed; for cohosted website clones, see also: https://aaworcester.org/ReferencePage.aspx?GRP=WAI&MOD=mpi__4799.txt) Goals for this web site software design are: o Serve AA's primary purpose & principles o Enable regular AAs to maintain a site o Support cloning (sites, pages, content) o Support AA groups & AA service entities o Protect user anonymity & data integrity o Shield users from harm (spam, malware) o Enable Web services (forms, transactions) o To mirror paper & in-person transactions o To be a power of example/proof of concept Access is at three levels, for three groups: Public -- access for the general public Members -- access for AA members only Admins -- access for site admins only A site may have unlimited public users, 1+ admins and 0+ members, as set by group conscience. Navigation menus and pages are level-specific: o PUBLIC menu: public pages & public features only o MEMBER menu: public + member-only pages & features o ADMIN menu: admin-only pages & features When a member or admin logs out, site access, menus, and 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. 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. Examples of Public pages: o Home page o "About Us" page o Meeting List page o Reference pages (e.g. this page) Examples of Public+Member Pages: o Contacts page o Calendar page o Committee pages o News/Announcement page Examples of Member-Only pages: o Member Profile page o Group Roster page o Group Resources page Examples of Admin pages: o Admin Site page o Add a User page o Resource Admin page Admins - trusted servants who maintain the web 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. Member accounts require no personal information, even an email address is optional. A shared login account ("gsr", "dcm", "advisor") may be used for groups of people. Resources - documents, images, links, site content - can be uploaded by any member, if so desired. Or, a site can allow uploads but require a trusted servant (admin) to review and "activate" it. Or, a site can have only admins update site content. Members control their 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). A design goal is to render sites reflective of each groups' primary purpose and group conscience. AA service entities (districts, areas, intergroup, committees, etc) have unique needs and focus. The software design ideally support each basic type of site (clone) and service entity in this regard. "Groups" and "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). 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 of the site itself). NOTE: Translation relies on client/browser (for Spanish, French, Portuguese, etc). Web Servant & Fellowship Friend