Open MTecknology opened 5 months ago
I used some AI chatbots to help with proof reading and felt pretty good about the responses.
Identify the core audience demographic in the following documentation outline:
The core audience demographic for this documentation outline appears to be individuals involved in addiction recovery programs who are looking to create and manage websites for their organizations. This audience is likely to be familiar with recovery terminology and practices, but may not have extensive technical knowledge or experience with website development. The documentation is tailored to provide guidance on using specific tools and templates to create and update websites for their recovery groups.
Describe the logic flow in the following documentation outline.
The logic flow in this documentation outline starts with an introduction to the project, including information about recovery sources, getting started, code of conduct, 7th tradition, and a glossary of terms. The next section, "Fundamentals," covers basic information about websites, domains, DNS, version control, Git, Markdown, YAML, common format mistakes, and commit messages. Following that, the outline delves into the specific domain solution being offered, including details about Sober Page, domain names, and email forwarding. The next section, "Your First Website," provides guidance on creating a basic website, using Jekyll, and making changes to the site. The outline then introduces "Our Website Template," which includes information about the template, starting a new site, updating meeting data, basic pages, event pages, menus, and site elements. The section on the template plugin, "Our Template Plugin," provides information about Hugo, AAMod, using AAMod, formatting meeting data, and prebuilding. Finally, the "Developer Corner" section covers core principals, modifying Hugo themes, and more information about HTML and CSS. Overall, the logic flow of the outline progresses from general project information to fundamental concepts, specific solutions, website creation, template usage, template plugins, and developer tools.
Assuming this documentation has complete pages explaining each page title, and given a target audience that [...], identify exact gaps in this documentation that may need supplemental sections.
This reliably came up with general web advice that is primarily applicable to dynamic sites and/or out of scope; examples: SEO, Security, Performance Optimization, Working with APIs
Current documentation generally expects diligent reading in addition to researching knowledge gaps. Using features like notes, warnings, hover text, etc. would be helpful, but insufficient. The root problem is that documentation is generally the minimum applicable to the project and does not guide users to external documentation (and/or replicate some of it).
Documentation needs to be rewritten with the following considerations:
I'm envisioning the following documentation structure:
Our Project
Recovery Source (default/front page)
We provide a set of projects (and other documentation) to help 12-step groups who are struggling with technology-based outreach.
Recovery Source is a team that is driven by the 12th step; we do not accept donations from those whom we serve.
What is a 12-step group (and AA)? (where/why it started)
Complete description of each project
Getting Started
We are here to serve as "the tech person" who can teach you how to deploy and maintain a website with both ease and transparency.
You can reach us on discord (with reasonable response expectations)
Tips for effectively using documentation (one page at a time--top to bottom) If feeling overwhelmed, don't read more than one page per day
An explanation that the current reader (people we serve) will be expected to handle certain "user support" tasks Expectations include being responsible for meeting information (YOU are ultimately responsible for meeting accuracy)
When to use specific support features / Where to report certain bugs (w/ note pointing toward bug triage)
Our projects rely on git. You can copy our project to another service like GitLab and host a website there; however, our project has chosen GitHub as our collaboration platform. This mean that Issues against /our/ project must be reported in GitHub. We will continue to support any public website repository, regardless of where it is hosted.
Tutorial: Create a github account
Code of Conduct: no changes
7th Tradition: no changes
Glossary
Fundamentals
About Websites
What is a website? (example) -- "You may be familiar with "Wordpress" or "Wix [...]"
A website allows other people to find your meeting information
It also supports more advanced things, like connecting to "The Meeting Guide App"
How websites used to be built (frontpage/dreamweaver)
How they typically work now (wordpress)
Static vs. Dynamic (pros & cons matrix) flexibility, management, security, account sharing, update complexity, life-after-compromise (auditing/removing defacement) https://naturaily.com/blog/best-static-site-generators
About Domains
What is DNS? The nuts and bolts behind domains, which support websites, email, and other web services
TLD vs. "domain" vs. 3rd-level
Explanation of cost, and why/how we offer free subdomains.
Where can 2nd-level domains be purchased?
How to identify a registrar worth avoiding.
How to transfer a domain to a new registrar.
Tutorial: Register a domain with Epik (our preferred provider, due to quality of support)
More About DNS
Naked records vs. sub-domains (2nd vs. 3rd)
Common record types and the purpose they serve (matrix) Note that NS records are special and changing them means changing where other records are managed
Tutorial: "Hello World" TXT record (why? how to create/verify/delete)
About Version Control
Our 3rd-level domains are maintained in a git repository
Git is a type of version control that enables de-centralized collaboration of (mostly) text files
De-centralized means that the entire "repository" can be copied to your computer and synchronized only when you want to "push" a change--there are no "global file locks"
This means it is easy for anyone across the internet to make their own copy, play around with changes, and then share the improvements.
Tutorial: Create a new empty repository https://docs.github.com/en/pages/getting-started-with-github-pages/creating-a-github-pages-site
More About Git
Git vs. GitHub
How to find a repository Note link at the bottom of our web template points to their repository
How to browse a repository and look at the contents of a file
How to review the history of a file
How to review history for the whole repository and review individual commits
Tutorial: Create README.md in (previous tutorial) an empty repository Note how this name is special and the contents saved show up like a repo front page
Working With Git
Using a web interface to make changes
Using Github Desktop to make a local copy
About Markdown
The ".md" at the end of files means that it is "Markdown"
This is a special syntax that gets magically turned into a web page
Some basic examples title, paragraph best practices, bold & italic, list, link, simple table
Links to more comprehensive references https://www.markdownguide.org/basic-syntax/
Tutorial: Make changes to README.md and review impact before saving
About YAML
Another data format that's used by this project is YAML.
Markdown is ideal for page layout, but not for data.
Some basic examples
Tutorial: Play around with data rendering on a website using simple examples.
Common Format Mistakes
invalid spacing
duplicate entries
invalid characters
About Commit Messages
A "commit message" is like a log entry that explains why you made a change
Recap of reviewing git history
Why a good commit message matters
What makes a good commit message
Make small changes with a good title and feel free to ignore the "details"
Tutorial: Make additional small changes to README.md with different commit messages for each change Recommend revisiting "browse repo history" section to aid reviewing these new changes
Our Domain Solution
About Sober Page
Reference how github pages allows free <3rd>.github.io and explain we use the same principal
Primary purpose of existence is to provide a Free web domain that clearly explains the purpose of your site.
Comprehensive explanation of what this project provides
Domain Names
Using our domain directly vs. as a forwarder to your domain.
Tutorial: Request change to Sober Page DNS records
Email Forwarding
Note about future plans to support
Your First Website
Very Basic Site
Recap of Static vs. Dynamic w/ reference back to section in About Websites
Note that our project scope is static site generators due to total cost of ownership and long-term maintenance requirements
Recap of 2nd vs. 3rd-level domains
Recap how/why services like github provide free hosting for websites (using <3rd>.github.io)
We can use this "playground" repository to create an actual website.
Tutorial: Does github support creating a website directly from markdown files? We could create 2-3 additional pages and link to them.
Website with Jekyll
Note how "basic website" just produces individual pages that can each look different. Explain how static site generators are used to generate lots of pages with identical appearance
There are many Static Site Generators out there and they each have various pros/cons.
One option that works very well with GitHub is Jekyll
Tutorial: Convert 3-page site to using jekyll (or is it already?)
Making Changes
How to make changes
How to revert changes
Our Website Template
About Our Template
Explain purpose of the template
Our SSG solution based on Hugo Hugo has many sharp edges and probably shouldn't be used if you are starting a new project, but it was/is the most appropriate tool for our project (we tried hard to remove the edges)
Summary of what features it offers Link to full list (in aamod)
Start New Site
Full explanation of what needs to happen
How to update configuration
Heavy linking to previous resources in order to fully explain each step
Tutorial: Deploy a hugo template
Update Meeting Data
Reference YAML in Fundamentals
Thoroughly explain the structure of our meeting data
Tutorial: Play around with example data
Update Basic Pages
Reference "Making Changes" from earlier
How to edit to pages
Tutorial: Copy/update the example contact page.
Update Event Pages
Reference basic page updates
Reference Markdown syntax guide
Show examples of links to documents
Explain changing the link to an embedded resource
Tutorial: Create a new event with an embedded "flyer" (pdf)
Update Menus
Tutorial: Change links in the side menu
Update Site Elements
How to override page elements
How to change logo and favicon
How to change website title
Our Template Plugin
About Hugo
Reference static site generators
Reminder that it's not usually the best tool for the job, but is for this particular project
It's useless without selecting a base theme
Link to list of themes
Links to other documentation
About AAMod
AAMod is a subtheme of Mainroad
Mainroad has some excellent content management documentation
Summary of AAMod features
Using AAMod: no changes
Formatting Meeting Data
Refer back to working with YAML
Ensure each line item is thoroughly explained ... maybe with pictures.
Prebuild: no changes
Developer Corner
This will populate the side menu with the following: