
Real World Guidelines
Table of Contents
Real World Guidelines
Structured template of table of contents for GitHub Documentation
Table of Contents
Project Title
Project Description
Table of Contents
Project Overview
Project Description
Project Goals
Key Features
Getting Started
Prerequisites
Setup Instructions
Installation
Features
Examples
Technical Requirements
Hardware Requirements
Software Requirements
Network Requirements
Technical Details
Architecture
Project Structure
Packages (If used)
Security (If used)
Security Overview
Security Best Practices
Wiki
Wiki Overview
Contributing
Contributing Guidelines
Code of Conduct
License and Copyright
License
Attribution
Contact and Support
Contact Information
About Developer
Support Resources
FAQs
Glossary
Documentation
Breakdown Table of Contents
#Project Title
##Project Description
Brief summary 1-2 sentences
***
##Table of Contents
***
##Project Overview
***
###Project Description
More detailed explanation of project 2-3 paragraphs
###Project Goals
List project goals
###Key Features
Key Features of the project
##Getting Started
***
###Prerequisites
List necessary prerequisites for using project, what you need to get started
###Setup Instructions
List setup configuration requirements to use project
###Installation
Step-by-step instructions for installing project
##Features
***
List project features, include notable functions, integration, or tools
(Use this section to highlight project capabilities and benefits)
###Examples
Include examples or use cases to illustrate project functionality
##Technical Requirements
***
(Use this section to help readers understand project, technical dependencies, and limitations)
###Hardware Requirements
List hardware requirements (RAM, CPU, etc)
###Software Requirements
List software requirements (Visual Studio Code, libraries, etc)
###Network Requirements
List network requirements (internet connectivity, etc)
##Technical Details
***
###Architecture
Describe project architecture (Visuals- Diagrams, design process)
###Project Structure
List and describe file structure of project
###Packages (If used)
List and describe packages used in the project
##Security (If used)
***
###Security Overview
Describe overview of project’s security features and considerations
###Security Best Practices
List and describe best security practices for using the project
##Wiki
***
###Wiki Overview
Brief overview of wiki and purpose
##Contributing
***
###Contributing Guidelines
Describe guidelines for contributing to the project (how to join the project)
###Code of Conduct
Describe code of conduct for people who want to join
##License and Copyright
***
###License
Specify project’s license and any relevant copyright information
###Attribution
Explain any credit or acknowledgments (third-parties libraries, frameworks, etc) used in the project. Explain any sources or inspirations (research, code, borrowed or adapted) used in the project
##Contact and Support
***
###Contact Information
Provide contact information (email, supporting channels-youtube)
####About Developer
Short bio of me (something not from my resume, GitHub profile)
###Support Resources
####FAQs
List question and answers (general questions about project- information that is not explained in README)
####Glossary
List key terms or concepts used in the project
####Documentation
List and describe sources used (explain the why I went that route)
Structured template of wiki for GitHub Documentation
Wiki Home Page
Wiki Title
Wiki Overview
Table of Contents
Introduction
Tutorials
Title of tutorial
Tutorial instruction steps
Methodologies
Name of methodology
Overview
Benefits
Challenges
Approaches
Name of approach
Overview
Benefits
Challenges
Resources
Name of resource
Link (name)
Description
Glossary
References
FAQs
Breakdown Wiki Home Page
####Wiki Title
##Wiki Overview
Brief overview of wiki’s purpose 1-2 sentences
***
##Table of Contents
##Introduction
***
More detailed explanation of wiki’s purpose 1-2 paragraphs
##Tutorials
***
###Title of tutorial
Name of the tutorial
(explain purpose of tutorial- reason for having it, why is it important)
###Tutorial instruction steps
Detailed instructions (step 1, 2, etc)
##Methodologies
***
###Name of methodology
Name of methodology
####Overview
Detailed explanation of methodology (include explanation of the why it’s being used)
####Benefits
List benefits of using methodology
####Challenges
List any challenges experienced with methodology
##Approaches
***
###Name of approach
Name of approach
####Overview
Detailed explanation of approach (include explanation of the why it’s being used)
####Benefits
List benefits of using approach
####Challenges
List any challenges experienced with approach
##Resources
***
###Name of resource
Name of resource
####Link
Link to the resource
####Description
Explanation of the resource (why it was used)
###Glossary
List key terms or concepts used in the project
###References
Explain any sources used in wiki
##FAQs
***
List question and answers (general questions about wiki- information that is not explained in wiki
Structured real-world guidelines for any project
Personal Project Guidelines
Project Initialization
Define project goals or objectives
Clearly explain what you want to achieve by building the project (it’s purpose)
Conduct feasibility assessment (need to create)
Assess resources, time, and skills to do the project
Create a project plan
Create a plain (milestones and deadlines)
Setup repository
Create project repository GitHub
Code Management
Use version control system
Use a version control system, Git
Follow a coding standard (need to create coding standard)
Establish coding standard (ensure consistency and readability across code base)
Code base = foundation of software, includes all files needed to compile the software
Write clean and modular code
Reusable modules to improve maintainability and scalability
Modular code = Breaking code into smaller separate pieces that do one specific thing. If one part needs fixing or changed, work on specific notes: part without breaking entire code
Use a code editor or IDE
Choose correct editor or IDE for project
Code editor = write and edit code, simple (Ex: notepad)
IDE (Integrated Development Environment) = all-in-one solution, writing, testing, and managing code
Testing and Debugging
Write unit tests
Create unit tests (ensure code quality and catch errors)
Use a testing framework (create testing framework template based on language)
Use testing framework like Playwright (other options- Selenium, Jest, Pytest, Unittest, etc)
Use a debugger (create debugger based on language)
Use a debugger like Chrome DevTools (other options- Node.js Inspector, Angular Augury, SonarLint, etc)
Code Review and Refactoring
Regularly review code (figure out when to stop building and start review)
Schedule review of code to ensure code quality and identify areas for improvement
Refactor code
Refactor to improve maintainability, scalability, and performance
Refactor code = clean up or improve the structure of the code without changing what the code does (Ex: Make code simpler to read, remove duplicate code, break big pieces into smaller and reusable parts)
Use code analysis tools (create and figure out when to use analysis tools)
Use code analysis tools (never use any- Code Factor, Code Climate, PMD, etc)
Keep code organized
Keep code organized (comments, documentation, and formatting)
Security and Best Practices
Follow security best practices (need to create security practice)
Implement security practices, secure coding practices, secure data storage, and secure authentication
Use security tools
Use security tools (never used any- Zap, Bearer, Horusec, etc) to identify and address security
Keep dependencies up-to-date
Do regular updates on dependencies (ensure latest security patches and features)
Dependencies = External tools or libraries in project (extra features)
Documentation
Write documentation
Create documentation (comments, README)
Keep project journal
Track progress, lessons learned, plan future improvements
Use documentation templates (need to create)
Ensure consistency across projects
Project Completion
Define project completion criteria (need to create)
Create clear criteria for project completion (what constitutes a completed project)
Create project completion checklist (need to create)
Create checklist to ensure all tasks are completed before completed
Conduct final project review
Perform review of project, met requirements of completion
Document lessons learned
Document lessons learned during project (improve future project outcomes)
Step-by-step Personal Project Guidelines
Project: purpose, what you are building
Project Goal: short explanation of project, purpose for building, “it’s the why are you building”
Project Objectives: explain, what you want to achieve with the project
Step 1: Project Initialization
Define project goals and objectives
Review project goals and objectives (can it be improved from brainstorming, more detailed, tailored focused)
(write down project goals and objectives in project plan document)
Conduct feasibility study
Research existing applications of what you are building (identify features, and functionality)
Determine technical feasibility of project (do you know the programming language for the project (if not, time to learn) framework, and tools)
Identify potential roadblocks and challenges (learning curve, any problem you can think of)
Create project plan
Breakdown project into smaller tasks and milestones
Create a project timeline with est. completing dates
Identify dependencies and (API, library, etc) critical path tasks (create tests at review checkpoints)
Setup project repository
Create repository, GitHub (README, gitignore) (start basics for version control, documentation)
Step 2: Development
Code management
Use coding standard and follow throughout project (start version control, even if its small)
Create frontend
Design wireframe (outline, mindmap, etc) and user interface
Use framework to start building UI (basic from wireframe “improve over time of project”)
Create backend
Setup backend language (API, Node.js, Python, etc)
Create authentication and authorization
Setup library for authentication Supabase (Passport, etc)
Setup library for authorization Supabase (Casbin, Remult, etc) or role-based access control (Casbin, OpenFGA, etc)
Authentication = Proving who you are (Ex: logging into email)
Authorization = Deciding what you're allowed to do (Ex: After logging into your email, decides if you can read, send, or delete emails.)
Step 3: Testing and Debugging
Write unit tests
Use testing framework like Playwright (other options- Selenium, Jest, Pytest, Unittest, etc)
Test individual components and functions
Write integration tests
Use testing framework (FitNesse, Citrus, etc) to test application’s functionality and user interface
Debug code
Use a debugger to identify and fix issues (don’t forget console logs and print statements to debug code)
Step 4: Security and Best Practices
Follow security best practices
Use HTTPS and SSL/TLS to encrypt data
Secure password storage library like bcrypt
Secure authentication and authorization
Use security tools
Use a tools like ZAP identify vulnerabilities
Use SSL Checker test SSL/TLS configuration
Keep dependencies up-to-date
Use npm or pip to manage dependencies
Regularly update dependencies to ensure you have the latest security patches
Step 5: Documentation
Write documentation
Create a README explains how to use the application
Write documentation (API, frontend, back, etc)
Use documentation templates
Use a template like Slite (The Good Docs Project) to create documentation and GitHub to host
Step 6: Project Completion
Define project completion criteria
Determine what constitutes a completed project
Create a checklist of tasks to complete
Conduct a final project review
Review project to ensure it meets the goals and objectives
Identify areas for improvement and create a plan to address them
Document lessons learned
Write a post document summarizes the project
Identify lessons learned and areas for improvement
Last updated