last-updated |
---|
2025-05-31 |
This is a handy document that tells you where to find what. It is meant to help you to easily find resources such as cheatsheets, calculators, code snippets etc. This is meant to be a living document and should be used with and improved with every project. Using the resources in here will help you to stick to best practices when undertaking any software project.
The most important thing is:
Use the knowledge base!
The very first thing you should do is create a Project main page (see further down below).
Use this list as a mind jogger and adapt to your own situation. The links point to guidelines, examples and templates.
- Scope, design, standards, conventions
- Have the features been scoped and designed in sufficient detail? Do you have the required design docs available?
- At the minimum you should have:
- Core scope docs
- Project main page
- [[Coding Project Main Page (Home) file template]]
- [[OVR_PRJ_001 Document Index]]
- Planning, goal setting, cost/time estimation, timeline / work plan
- [[Doll website high level planning]]
- [[Software cost estimation]]
- [[Azure Devops]]
- Work breakdown structure and Work Package
- [[Work Breakdown Structure (WBS)]]
- [[OVR_PRJ_002 WBS]]
- [[Work package template]]
- Functional Requirements Specification
- [[About functional requirements specifications]]
- [[Requirements elicitation]]
- [[Requirements analysis]]
- [[OVR_REQ_001 Requirements Specification]]
- [[Personal website requirements]]
- [[Doll website design]]
- Project main page
- Logging/Journaling/Issues
- [[Developer logs session templates and guide]]
- [[Coding session dev log report template]]
- [[Coding burst dev log report template]]
- [[Issue tracker template]]
- Core design docs
- [[About Design Specifications]]
- Use cases and diagrams
- [[OVR_USC_000 Use case parking lot]]
- [[Use case vs user story]]
- User stories
- [[User story template]]
- [[OVR_USR_000 User stories parking lot]]
- [[OVR_USR_001 User Registration]]
- [[OVR_USR_002 Log in]]
- Architecture diagram [[System Architecture - Currently empty]] [[Doll website architecture]]
- ERD and data model
- [[OVR_DBS_004 Data Model Design ERD]]
- [[Entity Relationship Diagrams (ERD)]]
- Class diagram
- [[Class Diagram - Currently empty]]
- Business process flow diagrams
- [[Business process modelling]]
- [[Business Process Hierarchy]]
- [[Data flow diagram vs Business process flow diagram]]
- [[OVR_DSN_001 Business Process Flow Diagrams]]
- Wireframes
- [[Examples of common UI design elements]]
- [[OVR_DSN_0 UI Navigation Logic]]
- [[OVR_DSN_012b UI Flow Definition]]
- [[OVR_DSN_004 UI UX Flow Design Specification]]
- Selection of languages, frameworks, libraries and OSs. (Tech stack and toolchain)
- [[OVR_DEC_001 Tech Stack and Toolchain]]
- Standards and conventions
- Coding standards
- [[OVR_STD_001 Coding standards and conventions]]
- Folder structure strategy
- [[Folder strategy for coding projects - Currently empty]]
- Document naming strategy
- [[File naming conventions]]. See [[OVR_STD_002 File naming conventions]] for latest update.
- Agreed branching strategy (for git)
- [[Branching strategies for code repos (Git GitHub)]]
- Coding standards
- Optional but recommended docs
- System context
- [[OVR_DSN_002 System Context Overview]]
- [[02contextDiagram]]
- System decompositions
- [[OVR_DSN_003 System Decomposition]]
- [[Use case, user story, WBS, Epic, System Decomposition]]
- [[Functional decomposition diagram vs Product breakdown structure]]
- Data flow diagrams
- [[Data Flow Diagrams]]
- API specifications
- [[OVR_DSN_012a Auth API Specification]]
- Registration and login related
- [[OVR_DSN_012c User Schema and Auth Models]]
- [[OVR_TST_012e Acceptance Test Plan - User Registration & Login]]
- [[OVR_DSN_012f User registration flow diagram]]
- [[OVR_DSN_012g Login flow diagram]]
- [[Email validation with JWT]]
- Agile/SCRUM related
- Backlog Refinement Log
- Product Backlog
- Retrospective
- Sprint Plan
- Sprint Review Summary
- Scrum Artifact
- Velocity Report
- Other
- [[OVR_DSN_012d Authentication Security Strategy]]
- [[Doll SEO]]
- Configuration Guide
- Decision Log
- Release / Changelog
- Research Note
- Test Plan / Case
- Usage / How-to Guide
- Quality control
- [[OVR_TST_008 Quality Control Plan]]
- System context
- Core scope docs
Here is a sequence of steps that almost every web project will require.
Before you write a single line of code, take some time to evaluate the scope and feasibility of the project. Read through the Scope, design, standards, conventions sections above and think about what applies to your situation. Start tracking time as soon as possible. Start using developer log files as soon as possible (see above).
- [[Mermaid cheat sheet]]
- [[Mermaid diagramming software]]
- [[UML cheatsheet]]
- Non-programming tasks
- Work space
- Team norms
- Leave schedule
- Internet and communication requirements
- In your time tracking app (eg Timely), create a project and the required tags
- Software requirements
Before coding, address infrastructure and tooling:
- Environment set-up
- Choose and document your repo branching strategy
- [[Branching strategies for code repos (Git GitHub)]]
- Create local and remote repos
- [[Git and GitHub cheatsheet]]
- [[Create a remote repo from the CLI]]
- Create dev container or venvs if required. Add vs code extensions to dev cont.
- [[Dev container cheatsheet]]
- [[Python venv virtual environments cheatsheet]]
- [[workspace cheatsheet]]
- Upgrade Docker to latest version
- [[Docker cheatsheet]]
- Register domain name
- [[How to register a domain name - Currently empty]]
- Add README
- [[README.md template]]
- Choose and document your repo branching strategy
- Deployment target and CI/CD workflows
- Determine hosting (cloud provider, VM, serverless) and create an
infrastructure/
folder if using IaC (Terraform, ARM, CloudFormation). - [[Deployment cicd cheatsheet]]
- [[CI-CD philosophy]]
- Determine hosting (cloud provider, VM, serverless) and create an
- Version matrix
- Specify OS, language runtimes and library versions. Confirm parity with production.
- Environment variables
- Decide between
.env
files or platform-managed secrets; document in README.
- Decide between
- Will you initially use json-server?
- General/common
- Install frameworks
- [[npm cheatsheet]]
- Fix any warnings from framework installs
- Set up loggers
- [[Logging - Currently empty]]
- Declare env vars
- Write tests as you go along
- [[RTL cheatsheet]]
- Write docs as you go along
- Allow time for refactoring / technical debt
- Install frameworks
- Frontend
- Add HTML metadata and Google tracking code to frontend
- [[Google tracking code cheatsheet]]
- Develop features
- [[3. Steps to create a full stack app]]
- [[React cheatsheet]]
- [[React router dom v6.4 cheatsheet]]
- Add HTML metadata and Google tracking code to frontend
- Backend
- Develop routes
- Database
- Set up database
- Develop tables/collections
- Develop sample data and insert into db
- [[PostgresQL cheatsheet]]
- [[neo4j cheatsheet]]
- [[Mongo cheatsheet]]
- [[graphQL]]
- [[Thoughts about neo4j and graph dbs]]
- Coding session management
- Use your log file to record EVERYTHING you do.
- [[Developer logs session templates and guide]]
- Integration and deployment
- Set up production server
- Sign up with service provide and create VM
- Update packages
- Configure SSH keys
- Create new users
- Disable root password if needed
- Set up firewall
- Install docker daemon on production server
- Install nginx (for reverse proxy) if needed
- [[Deployment cicd cheatsheet]]
- [[Railway.app cheatsheet]]
- Write docker files
- Create GitHub workflows
- [[GitHub Actions cheatsheet]]
- Create script to run docker deployments on server
- Install ssl certs on server
- [[PeterFenPoly dev log]]
- Set up DNS records
- Set up name servers
- Configure reverse proxy server (if needed)
- Set up production server
- Wrap-up and handover
- Polish off handover documentation
- Analyse time spent vs budget. Do this on a feature/WBS/User story level. Where did things go off track? Why?
- Review notes to see what was the most difficult issues and write/update gists and knowledge base
- Count the lines of code and calculate the time per line of code
- Write an article for LinkedIn
- Cheatsheets
- Repo summaries
- Notability
- Paper notes
- Penzu
- Utility scripts
- Updates
- Secrets and access tokens
Historically, cheatsheets were stored in the cheat sheets gist. As of May 2025 that whole repo was moved into Obsidian, so these docs are now available in Obsidian and GitHub. If it not possible to store the file int the gist, it is stored in the OneDrive/Programming/CheatSheets folder. The table below describes the cheat sheets. If you make any changes to cheat sheets, please also remember to update this table.
Doc name | Desription | Location | Format |
---|---|---|---|
[[Deployment cicd cheatsheet|Deployment CI/CD cheatsheet]] | General notes on how to deploy. Linode Linux Ubuntu VM deployment | C:\Users\donnp\source\repos | Markdown |
[[Dev container cheatsheet]] | How to set up a dev container for your project | C:\Users\donnp\source\repos | Markdown |
[[Email validation with JWT]] | Walkthrough of how to create a registration and login system with email verification | C:\Users\donnp\source\repos | Markdown |
[[Git cheatsheet]] | How to work with git and GitHub | C:\Users\donnp\source\repos | Markdown |
[[HTML cheatsheet]] | Folder containing various HTML code examples | OneDrive/Programming/CheatSheets | HTML, Markdown |
[[Mermaid cheatsheet]] | How to use Mermaid to create various types of diagrams in Markdown | C:\Users\donnp\source\repos | Markdown |
[[Mongo cheatsheet]] | How to work with Mongo in javascript | C:\Users\donnp\source\repos | Markdown |
[[neoj4 cheatsheet]] | how to work with neoj4 | C:\Users\donnp\source\repos | Markdown |
[[npm cheatsheet]] | How to work with Node Package Manager | C:\Users\donnp\source\repos | Markdown |
[[Pandas cheatsheet]] | How to work with Python Pandas | C:\Users\donnp\source\repos | Jupyter notebook |
[[Python cheatsheet]] | Basic python syntax | C:\Users\donnp\source\repos | Jupyter notebook |
[[Railway.app cheatsheet]] | How to deploy an app on Railway.app | C:\Users\donnp\source\repos | Markdown |
[[React cheetsheet]] | Basic React and JSX syntax (javascript) | C:\Users\donnp\source\repos | Markdown |
[[React Router Cheatsheet]] | How to use React Router | C:\Users\donnp\source\repos | Markdown |
README.md template | Generic template for creating a readme doc | C:\Users\donnp\source\repos | Markdown |
[[RTL cheatsheet]] | React Testing Library | C:\Users\donnp\source\repos | Markdown |
[[Scaling calcs for css clamps]] | Calculate values for css clamps, convert pixels to rem | OneDrive/Programming/CheatSheets | Excel |
[[Steps to create full stack app]] | How to create a registration and login system with a React TypeScript frontend, Node/Express backend, and PostgreSQL database | C:\Users\donnp\source\repos | Markdown |
[[UML cheatsheet]] | Unified Modeling Language | OneDrive/Programming/CheatSheets |
This list could be helpful if you need code snippets from previous projects. Remember there is also a search feature in GitHub that you can use.
Repo name | Description | Start date | Languages, libraries, technologies | Noteworthy bits |
---|---|---|---|---|
PersonalWebsite | My personal website where I can do just what I want | yyyy-mm-dd | - | - |
CaseStudyBotWithVectorSearch | Simple web chat experience targeting chatGPT through Azure OpenAI | yyyy-mm-dd | - | - |
CaseStudyBotWithVectorSearch | Description | yyyy-mm-dd | - | - |
AiPrototypes | Prototypes for PiP | yyyy-mm-dd | - | - |
AiAssistant | AI assistant to help with common tasks | yyyy-mm-dd | - | - |
flaskApiTutorial | For playing around with basic Flask API functionality | yyyy-mm-dd | - | - |
utilities | Utilities to automate admin tasks | yyyy-mm-dd | - | - |
AiGf | Ai Girlfriend | yyyy-mm-dd | - | - |
PeterFenPoly | Description | yyyy-mm-dd | - | - |
JamesBriggsAI | Jupyter Notebooks to help you get hands-on with Pinecone vector databases | yyyy-mm-dd | - | - |
GreggKamradtAI | Overview and tutorial of the LangChain Library | yyyy-mm-dd | - | - |
PySims | Various models to simulate mining operations | yyyy-mm-dd | - | - |
yash_git_tutorial | Description | yyyy-mm-dd | - | - |
sdd-auth-server | Description | yyyy-mm-dd | - | - |
design_patterns | A library of design patterns in Python | yyyy-mm-dd | - | - |
HS2_TPC_Bot | Bot to connect to TPC software and download reports | yyyy-mm-dd | - | - |
sdd-frontend | Description | yyyy-mm-dd | - | - |
sdd-app-db | Description | yyyy-mm-dd | - | - |
sdd-web-scrapers | Description | yyyy-mm-dd | - | - |
ViteReactTypescriptTemplate | Description | yyyy-mm-dd | - | - |
DevEdNodeJwtTut | Description | yyyy-mm-dd | - | - |
public-images | Repo containing public images | yyyy-mm-dd | - | - |
WDS-JWT-Auth | Description | yyyy-mm-dd | - | - |
TM_express_crash_course | Description | yyyy-mm-dd | - | - |
flwebscraper | Description | yyyy-mm-dd | - | - |
eskomtenders | Scrapes data off the Eskom tender website | yyyy-mm-dd | - | - |
arithmetic-game | Description | yyyy-mm-dd | - | - |
genetic-evo | Genetic evolution simulation | yyyy-mm-dd | - | - |
AlgoExpert | Solutions the the problems on AlgoExpert | yyyy-mm-dd | - | - |
udemy-andrew-mead-react-tutorial | Description | yyyy-mm-dd | - | - |
hangmanServer | Server for the hangman game | yyyy-mm-dd | - | - |
InventoryApp | Simple inventory management app | yyyy-mm-dd | - | - |
Personal-website | Just a fancy CV | yyyy-mm-dd | - | - |
Project-euler | Description | yyyy-mm-dd | - | - |
end-to-end-testing-with-jest-2883169 | Learning End to End Testing with Jest | yyyy-mm-dd | - | - |
reed-data-analysis | Description | yyyy-mm-dd | - | - |
investment-projection-calculator | Description | yyyy-mm-dd | - | - |
digital-management-app | App to manage digital surveys and checklists | yyyy-mm-dd | - | - |
credentials-management-app | App to manage corporate credentials - HyperionDev Level 3 Task 35 | yyyy-mm-dd | - | - |
cars-api | Description | yyyy-mm-dd | - | - |
codewithmosh-node-tutorial | A node.js v8.9.1 tutorial with Mosh Hamedani | yyyy-mm-dd | - | - |
youtube-traversy-media-mern-tutorial | Code along with Brad's tutorial | yyyy-mm-dd | - | - |
jwt-demo-2 | Description | yyyy-mm-dd | - | - |
jwt-demo | Description | yyyy-mm-dd | - | - |
maintenance-app | Description | yyyy-mm-dd | - | - |
github-custom-interface | Description | yyyy-mm-dd | - | - |
hangman | Description | yyyy-mm-dd | - | - |
Coding-challenge | A selection of coding challenges for practice purposes | yyyy-mm-dd | - | - |
QuickFoodOrderSystem | Dummy program for food order management system. | yyyy-mm-dd | - | - |
Unisa-assignments | Description | yyyy-mm-dd | - | - |
Maze-generator | This simple program generates a maze using an iterative back tracking algorithm, using only vanilla JavaScript | yyyy-mm-dd | - | - |
JavaScript-canvas-tutorial | Description | yyyy-mm-dd | - | - |
Forestry | Software for managing forests | yyyy-mm-dd | - | - |
Level1Task25_2 | Description | yyyy-mm-dd | - | - |
FirstWebsite | My first attempt at building a basic website | yyyy-mm-dd | - | - |
MiningVdts | Models the production of a mine with the objective of identifying improvement opportunities | yyyy-mm-dd | - | - |
MVVM_Basics_2 | Second program to showcase MVVM basics | yyyy-mm-dd | - | - |
MVVM_Basics | Demo a simple MVVM design pattern | yyyy-mm-dd | - | - |
BasketballRoster | Basketball roster exercise from Head first c# | yyyy-mm-dd | - | - |
template | Description | yyyy-mm-dd | - | - |
template | Description | yyyy-mm-dd | - | - |
Check the utilities repo for handy scripts like how to count the number of lines in a file etc.
In Notablity you can find the following handwritten notes: TODO: convert to markdown
- Lang chain concepts
- AI project research
- Notes for each month
- Statemachine for LHD
- HTTP basics
- React cheatsheet
- Doll project (requirements, designs etc)
- TypeScript with Mosh
- Node express server
- Power Apps source control
- Facebook Web scraper
- Making a date calender in Power Query
- Digital Management Software (Requirements)
- Portfolio website (Requirements, designs)
- css basics
- Forestry inventory software (Requirements, designs)
- c# basics
- software ideas (this should be moved to OneNote)
- XAML basics
- Tim Corey's design process
- Reflective Programming
- Design patterns
- c++ references
- Soduku solver
- 8 queens problem
- Binary trees
I also have a book (yes, real paper) where I practice writing code snippets.
- Chunking
- Embeddings
- Document cleaning (for RAG)
- Basic HTML
There are some stuff captured in Penzu, but this should all be moved elsewhere. Worth a look though. Penzu
You should never store secrets and such in repos on GitHub. I normally store secrets and personal access tokens in a .env file in the repo. You must add this filename to your .gitignore. If you are working on multiple machines, you must manually copy this file (.env) to all the machines, since it obviously won't be included when you clone a repo.
- React Router cheatsheet is outdated. See Peterborough & Fenlands Polyamory website for a newer example.