The monorepo of the thesis' system named as "Design of a Credential Verification System using Blockchain Technology" or "folioblocks".
Folioblocks is a blockchain-based (consortium-type, from-the-scratch, and opinionated) credential verification system that allows for individuals to safely secure their credentials managed by their trusted and official institution or career/education-based organization.
This repository is aimed to become as an example as a project where other people who uses similar technologies or other people who is in the same bridge who wants to develop their own blockchain system to relate and understood how things were incorporated from one another.
This is not provided or was published as a way of free money but is intended for educational purposes only.
This is a project is a highly experimental project and should be known as a Proof-of-Concept (PoC) type of project!
If you consider on attempting to explore this project even further, please proceed with caution!!! Do not hesistate to contact me through email if you have any questions!
Some of the contents of this README has been removed in the meantime. Please wait for a while as I try to document everything. Please check the issues section for more information.
The following are the group members or associates of this project.
- Don G. Noriega — Railway Engineering
- Janrey T. Licas — Intelligent Systems | Backend Developer, Frontend Co-Developer, Project Lead, Project Maintainer, Quality Assurance
- Alexander C. Marjes — System Administration
- Ronan C. Marasigan — System Administration | Frontend Developer
- Engr. Verlyn Nojor-Vicente — Adviser for this Group
A detailed contribution of each members will be disclosed soon as the progression of the documentation continues. Please follow this issue for more information.
The following links are references that we used at a certain section of the documentation or from a certain scenario where it helped us. This may contain references that weren't used or used as a bridge to another reference.
References may be included from the paper but references from the paper will not be included!
References contains an article to which was modified by the lead developer in order to accomodate 5 metrics that differs to the 3 consensus mechanisms.
- How To Calculate CPU Utilization - https://www.embedded.com/how-to-calculate-cpu-utilization/
- Forum: What is CPU utilisation and how it can be calculated or measure? - https://www.eukhost.com/forums/forum/general/technology-forum/22321-what-is-cpu-utilisation-and-how-it-can-be-calculated-or-measure
- Stackoverflow: How is CPU usage calculated? - https://stackoverflow.com/questions/3748136/how-is-cpu-usage-calculated
Inspiration and Design Considerations for Implementing and Designing Three System as Consortium Mechanism for the Blockchain System
The references were used as a reading materials to better understand what part of the system will differ and how it will impact the system as a whole when different approaches where used to implement the blockchain system.
Consortium was in favor with the system that is supposed to be integrated along with the blockchain system because of the need of transparency of the issuance of the certification towards to the user of the system.
- Consortium Blockchain-Based Decentralized Stock Exchange Platform - https://ieeexplore.ieee.org/abstract/document/9127940
- DefenseChain: Consortium Blockchain for Cyber Threat Intelligence Sharing and Defense - https://ieeexplore.ieee.org/abstract/document/9223313
- Design Consideration: Calling Conventions for the Participating Nodes in the Blockchain - https://www.sofi.com/learn/content/what-are-nodes/
- Design Consideration: Choosing the right consensus mechanism: Sawtooth's Proof-of-Elapsed-Time (PoET) (Used for extra information) - https://www.geeksforgeeks.org/consensus-algorithms-in-blockchain/
- Design Consideration: Understanding the blockchain vulnerabilities such as the 51% attack - https://s3.ap-northeast-2.amazonaws.com/journal-home/journal/jips/fullText/90/jips_530.pdf
- Design Consideration: Understanding Consensus Mechanism and its internal steps to produce consensus,
What Are Consensus Mechanisms in Blockchain and Cryptocurrency?
- https://www.investopedia.com/terms/c/consensus-mechanism-cryptocurrency.asp - Hybrid-IoT: Hybrid Blockchain Architecture for Internet of Things - PoW Sub-blockchains - https://arxiv.org/pdf/1804.03903.pdf
- Proof-of-Elapsed-Time, Concensus of Choice, Backed by Performance ANalaysis from the Sawtooth Blockchain Framework (Used as a final choice as a bias for the development of the blockchain system) - https://www.cs.uoregon.edu/Reports/MS-201906-Corso.pdf
- Public, Private, Permissioned Blockchains Compared - https://www.investopedia.com/news/public-private-permissioned-blockchains-compared/
- Storing Files on the Blockchain is a “Stupid Idea” - https://www.cryptyk.io/storing-files-blockchain-stupid-idea/
- Session-based Authentication: Why JWT for now, and why consider OAuth later - https://stackoverflow.com/questions/39909419/what-are-the-main-differences-between-jwt-and-oauth-authentication
- Trends in Development of Databases and Blockchain (Used as an insight for considering blockchain frameworks and their consensus mechanism) - https://arxiv.org/pdf/2003.05687.pdf
- Why is Fernet only AES-128-CBC? (Design consideration as part of encrypting and decrpyting contents while using SHA256 for the content signature) - https://crypto.stackexchange.com/questions/43120/why-is-fernet-only-aes-128-cbc
The following is the only resources aside from articles that were used in order to build the system with a blockchain system incorporated to it. This was only used by the lead developer
of the team.
- Blockchain A-Z™: Learn How To Build Your First Blockchain - https://www.udemy.com/course/build-your-blockchain-az/
This sub-part of the reference includes git issues and repositories that further helped me debug and develop the whole system. Please note that this is far different from the section Utilities / Tools Used
- python/mypy - Class
Base
is invalidated due to dynamic typing not properly handled - python/mypy#6372 - python/mypy - dynamic typing were inproperly handled in the case of
sqlalchemy
- python/mypy#2477 (comment) - tiangolo/fastapi - Problematic startup due to argument passed is not correct - fastapi/fastapi#1495 (comment)
- tiangolo/fastapi - Overriding the default output from the logs with a better log output - fastapi/fastapi#1508
- tiangolo/fastapi - Priting logs without colorization through the
stdout
stream - fastapi/fastapi#1276 (comment) - tiangolo/fastapi - running FastAPI along with other asynchronous processes which results to a monolithic system - fastapi/fastapi#543
- encode/databases - sample code for running simple query tasks with the connected database, at line 188 - https://github.com/encode/databases/blob/master/tests/test_databases.py#L188
- vue-qrcode, QR code component for Vue.js - https://github.com/fengyuanchen/vue-qrcode
This part of the reference section contains alot! They are the onces that helped me the most when I had no one else to help in the development. With that, these references helped me understood some technologies that I have never used.
- Azure Container Instance: Creating a YAML single file to multi-container whilst single deploy - https://learn.microsoft.com/en-us/azure/container-instances/container-instances-reference-yaml
- Azure Container Instance: Deploy a multi-container group - https://learn.microsoft.com/en-us/azure/container-instances/container-instances-multi-container-yaml
- Azure Container Instance: Deploying a container - https://learn.microsoft.com/en-us/azure/container-instances/container-instances-tutorial-deploy-app
- Azure Container Instance: Enabling a TLS endpoint in a sidecar container - https://learn.microsoft.com/en-us/azure/container-instances/container-instances-container-group-ssl
- Azure Container Instance: Mount an Azure file share in Azure Container Instances - https://learn.microsoft.com/en-us/azure/container-instances/container-instances-volume-azure-files
- Azure Container Instance: Retrieve container logs and events in Azure Container Instances - https://learn.microsoft.com/en-us/azure/container-instances/container-instances-get-logs
- Azure Container Instance Troubleshooting: Error while creating container using YML file: https://learn.microsoft.com/en-us/answers/questions/35424/error-while-creating-container-using-yml-file(cont
- Docker Setup: Multistage Deployment (Unused due to time limitation on understanding it further) - https://github.com/akpircher/multistage-dockerfile-demo
- Encryption: PyCryptodome - Advanced Encrpytion Standard (AES) Implementation and Usage - https://pycryptodome.readthedocs.io/en/latest/src/cipher/aes.html
- FastAPI: Async SQL (Relational) Databases - https://fastapi.tiangolo.com/advanced/async-sql-databases/?h=sql#import-and-set-up-sqlalchemy
- Github: Creating an empty
gh-pages
without inheritance on other branches - https://blog.ediri.io/how-to-create-a-github-gh-pages-branch-in-an-existing-repository - Github Actions: Caching
node_modules
withyarn
- https://dev.to/mattpocockuk/how-to-cache-nodemodules-in-github-actions-with-yarn-24eh - HTTP Response Status Codes - https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
- Logging & Tracing in Python, FastApi, OpenCensus and Azure - https://dev.to/tomas223/logging-tracing-in-python-fastapi-with-opencensus-a-azure-2jcm
- Python: Creating Custom Exceptions - https://www.programiz.com/python-programming/user-defined-exception
- Python: Deleting files and Directories - https://pynative.com/python-delete-files-and-directories/
- Python: Understanding
type <callable>
- https://www.javatpoint.com/python-callable-function - Python: Logging an Exception - https://www.geeksforgeeks.org/how-to-log-a-python-exception/
- Python Async Databases: Issue about
PRAGMA
foreign_keys - encode/databases#169 - Python AsyncIO: Understanding
run_in_executor
for IO operation - https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.run_in_executor - Python AsyncIO: Avoiding Issues when Waiting Multiple Events - https://python.plainenglish.io/how-to-avoid-issues-when-waiting-on-multiple-events-in-python-asyncio-48e22d148de7
- Python Cryptography: Asymmetric Cryptography with Python (Implementing RSA and ECC, but was unused in implementation, but rather, the general idea) - https://medium.com/@ashiqgiga07/asymmetric-cryptography-with-python-5eed86772731
- Python Cryptography: Switching to Full-Crypto-Based Functions and Identifying Unsafe Functions for randomization - https://cheatsheetseries.owasp.org/cheatsheets/Cryptographic_Storage_Cheat_Sheet.html#secure-random-number-generation
- Python Cryptography: Using AES to decrypt/encrypt contents to render in the main system - https://stackoverflow.com/questions/61420893/python-3-encrypt-and-decrypt-image-using-aes
- Python DRY: Parameterized Decorator - HOW-TO #1: https://www.geeksforgeeks.org/creating-decorator-inside-a-class-in-python/, HOT-TO#2: https://stackoverflow.com/questions/5929107/decorators-with-parameters
- Python OOP: Understanding
@class
andstatic
Class methods - https://www.geeksforgeeks.org/class-method-vs-static-method-python/ - Python Package Manager: Failing through installation, best practices to avoid timeouts - https://www.tutorialexample.com/best-practice-to-set-python-pip-install-timeout-and-retry-times-for-beginners-python-tutorial/
- SSL Certification for the Backend: Auto-generate SSL with Sidecar container
caddy
- https://www.raeffs.dev/blog/2021/05-mai/25-autogenerate-ssl-certificates-for-aci/ - SSL Certification for the Backend: Another
but working
guide for SSL auto-generation + use previously saved SSL cert withcaddy
- https://itnext.io/automatic-https-with-azure-container-instances-aci-4c4c8b03e8c9 - Signals: Identifying the right
SYSCALL
to gracefully exit instances - https://bash.cyberciti.biz/guide/Sending_signal_to_Processes - Understanding
Docker Stack
- https://www.ronaldjamesgroup.com/article/docker-stack - Using my
prototype
system as a basis for re-developing the system into fully-pledge (folioblocks-web-prototype) - https://github.com/CodexLink/folioblocks-web-prototype - Vue.js, Baseline Guide for Creating a Search Bar (Not entirely used, used for functionality basis) - https://blog.logrocket.com/create-search-bar-vue/
- Vue.js, Watchers - https://vuejs.org/guide/essentials/watchers.html
References were used to formulate the support structure of the problem described in the presentation.
- Base Problem #1, The rise of fake credentials – A different kind of identity theft - https://www.sterlingrisq.com/blog/the-rise-of-fake-credentials-a-different-kind-of-identity-theft
- Base Problem #2, False credentials and fake job histories: How applicants misrepresent themselves - https://checkpoint.cvcheck.com/false-credentials-and-fake-job-histories-how-applicants-misrepresent-themselves/
- Confirming that fake credentials that it is a serious threat - http://www.csc.gov.ph/new-updates/2103-fake-credentials-an-offense-of-serious-dishonesty-%E2%80%93-csc.html
- Effect from the Base Problems, identifying potential domino effects - https://www.quora.com/How-useful-are-fake-degrees-in-the-employment-field-Do-most-companies-verify-and-what-are-the-risks-to-an-applicant-with-fake-credentials
- Extension from the effect of the base problems, the supporting article
False credentials and fake job histories: How applicants misrepresent themselves
- https://checkpoint.cvcheck.com/false-credentials-and-fake-job-histories-how-applicants-misrepresent-themselves/ - Basis: Employment Rates and Crisis, The Effects of the East Asian Crisis on the Employment of Women and Men: The Philippine Case - https://www.sciencedirect.com/science/article/abs/pii/S0305750X00000231
- Understanding the employee's status as part of identifying the user's of the system - https://www.perkbox.com/uk/resources/blog/worker-or-employee-what-is-employment-status
References were used to further strengthen our stand about credentials being critical being as it was commonly used to abuse the system in terms of integrity.
-
Educational imposters and fake degrees - https://www.sciencedirect.com/science/article/abs/pii/S0276562410000685
-
An Introduction to the Economics of Fake Degrees - https://www.tandfonline.com/doi/abs/10.1080/00213624.2008.11507173
-
Educational Authority in the ‘‘Open Door’’ Marketplace: Labor Market Consequences of For-profit, Nonprofit, and Fictional Educational Credentials - https://journals.sagepub.com/doi/abs/10.1177/0038040716652455
-
The human problem behind credential theft and reuse - https://www.ingentaconnect.com/content/hsp/jcs/2021/00000004/00000003/art00004#Refs
-
The Real and the Fake Degree and Diploma Mills - https://eric.ed.gov/?id=EJ832770
- Exploring blockchain technology and its potential applications for education - https://slejournal.springeropen.com/counter/pdf/10.1186/s40561-017-0050-x.pdf
- The Advantages and Disadvantages of the Blockchain Technology - https://ieeexplore.ieee.org/abstract/document/8592253
- Proposing a reliable method of securing and verifying the credentials of graduates through blockchain - https://www.proquest.com/docview/2545289280?pq-origsite=gscholar&fromopenview=true
- A Survey on Consensus Mechanisms and Mining Strategy Management in Blockchain Networks (Choosing the right consensus mechanism) - Preview: https://ieeexplore.ieee.org/document/8629877 | Full Version: https://arxiv.org/pdf/1805.02707.pdf
- Bitcoin: reaching consensus in distributed systems (Understanding the consensus mechanism in the blockchain system) - https://witestlab.poly.edu/blog/get-rich-on-fake-bitcoins/
References are some of the standards that was used initially, but was changed throughout the thesis project due to inability to use it due to incomplete stage.
- IEEE 1008-1987 — IEEE Standard for Software Unit Testing - https://ieeexplore.ieee.org/document/27763
- ISO/TR 23244:2020 — Blockchain and distributed ledger technologies — Privacy and personally identifiable information protection considerations - https://www.iso.org/obp/ui/#iso:std:iso:tr:23244:ed-1:v1:en
- ISO/TR 23455:2019 — Blockchain and distributed ledger technologies — Overview of and interactions between smart contracts in blockchain and distributed ledger technology systems - https://www.iso.org/obp/ui/#iso:std:iso:tr:23455:ed-1:v1:en
- PEP 8 — Style Guidelines for Python Code - https://www.python.org/dev/peps/pep-0008/
- PEP 484 — Type Hints - https://www.python.org/dev/peps/pep-0484/
This sub-section contains some list from the sub-section Standards: Initial
, they were changed due to misaligned goals or just incomprehensible to the point where it does not directly shows as a solution or a factor to consider when making the design.
- PEP 8 — Style Guidelines for Python Code - https://www.python.org/dev/peps/pep-0008/
This subsection of the reference is literally very long than the entire README! I don't blame my willingness to include the credibility of these people from asking these questions! Please use Table of Contents
to skip this section if you don't want to scroll through it!
Also, this contains references that helped me further debug and do complex implementations, wherein specific cases are very rare to find. Link archiving started from February 01, 2022 and onwards, this implies that I did some early research but not alot than the specified date due to the time set for prototyping a system.
- API Best Practice Advise: 'Logout: GET or POST?' (Debating what HTTP method should I used for API endpoint
/logout
) - https://stackoverflow.com/questions/3521290/logout-get-or-post - Azure Container Instances: How to inter-communicaate containers - https://stackoverflow.com/questions/60628748/inter-container-communication-in-azure-container-instances
- Azure Container Registry: Deleting a docker image - https://stackoverflow.com/questions/41446962/how-to-delete-image-from-azure-container-registry
- Cryptography, Why choose SHA-256 over SHA-512 for SSL/TLS certificate? - https://security.stackexchange.com/questions/165559/why-would-i-choose-sha-256-over-sha-512-for-a-ssl-tls-certificate
- CSS: Image size, fill and its properties: https://stackoverflow.com/questions/11757537/css-image-size-how-to-fill-but-not-stretch
- Docker,
dockerfile
: ConditionalCOPY
- https://stackoverflow.com/questions/63728819/conditional-copy-in-dockerfile - Docker,
dockerfile
: ConditionalADD/COPY
- https://stackoverflow.com/questions/31528384/conditional-copy-add-in-dockerfile - Docker,
dockerfile
: ConditionalENV
- https://stackoverflow.com/questions/37057468/conditional-env-in-dockerfile - Docker,
dockerfile
: PassingARG
value to theENTRYPOINT
- https://stackoverflow.com/questions/34324277/how-to-pass-arg-value-to-entrypoint - Docker,
dockerfile
.env
file is ignored duringCOPY
- https://stackoverflow.com/questions/42132475/hidden-file-env-not-copied-using-docker-copy - Docker,
dockerfile
:if-else
condition with external arguments - https://stackoverflow.com/questions/43654656/dockerfile-if-else-condition-with-external-arguments - Docker, forcing to
docker clean
for every build - https://stackoverflow.com/questions/35594987/how-to-force-docker-for-a-clean-build-of-an-image - Docker,
if-else
condition with external arguments - https://stackoverflow.com/questions/43654656/dockerfile-if-else-condition-with-external-arguments - Docker Container Runtime:
ping
: command not found - https://stackoverflow.com/questions/39901311/docker-ubuntu-bash-ping-command-not-found - Encoding, attempting to do
base64
in the terminal - https://superuser.com/questions/120796/how-to-encode-base64-via-command-line - FastAPI: Attempting to multi-thread to do blockchain hashing mechanism without blocking the main thread ('came to a conclusion of using
asyncio.run_in_executor()
') - https://stackoverflow.com/questions/66541289/python-fastapi-multi-threading-processing-start-stop-process-with-api-endpo - FastAPI: API endpoints from Docker is not detected or registered through the logging system - https://stackoverflow.com/questions/63510041/adding-python-logging-to-fastapi-endpoints-hosted-on-docker-doesnt-display-api
- FastAPI: Catching real client IP address (This was used to communicate with other nodes that is containerized) - https://stackoverflow.com/questions/60098005/fastapi-starlette-get-client-real-ip
- FastAPI: Patching the logging system with a customized format through library
logging
- https://stackoverflow.com/questions/62934384/how-to-add-timestamp-to-each-request-in-uvicorn-logs - FastAPI: Returning an image - https://stackoverflow.com/questions/55873174/how-do-i-return-an-image-in-fastapi
- FastAPI: Understanding the
loggers
and itshandlers
and applying changes to filter levels withdictConfig()
- https://stackoverflow.com/questions/25187083/python-logging-to-multiple-handlers-at-different-log-levels - FastAPI Uvicorn Backend, Problem enabling Uvicorn auto-restart when launching programmatically with uvicorn.run - https://stackoverflow.com/questions/52784924/problem-enabling-uvicorn-auto-restart-when-launching-programmatically-with-uvico
- FastAPI Debugging: with VSCode - https://stackoverflow.com/questions/60205056/debug-fastapi-application-in-vscode
- FastAPI Models: Value Error Missing when using POST (This was due to
response_model
not set) - https://stackoverflow.com/questions/68139116/value-error-missing-when-using-post-with-fastapi - FastAPI Security: Securing FastAPI with JWT TOken-based Authentication - https://testdriven.io/blog/fastapi-jwt-auth/#jwt-authentication
- Function Naming Convention: what was the opposite of
init()
- https://softwareengineering.stackexchange.com/questions/163004/what-is-the-opposite-of-initialize-or-init - Git, Patterns for Ignore: Excluding file only from the root folder of the working directory - https://stackoverflow.com/questions/3637660/how-to-exclude-file-only-from-root-folder-in-git
- Git, Cloning a specific folder from a repository - https://stackoverflow.com/questions/651038/how-do-i-clone-a-git-repository-into-a-specific-folder
- HTTP Code, Finding Suitability based on Situation: What is the HTTP Code for
Not Ready Yet, Try Again Later?
- https://stackoverflow.com/questions/9794696/which-http-status-code-means-not-ready-yet-try-again-later#:~:text=Retry%2DAfter%20is%20also%20valid,too%20much%20work%20to%20do - HTTP Request: Request is blocked, content must be served over
HTTPS
- https://stackoverflow.com/questions/52130918/web-api-error-this-request-has-been-blocked-the-content-must-be-served-over-h - HTTP Request Tool,
curl
: Retry mechanism - https://stackoverflow.com/questions/42873285/curl-retry-mechanism - MyPy: Unable to detect modules from other directories - https://stackoverflow.com/questions/60873894/mypy-cant-find-submodule
- Node.js, Package Manager: Yarn-equivalent of
npm ci
- https://stackoverflow.com/questions/58482655/what-is-the-closest-to-npm-ci-in-yarn - Node.js, Axios Library: Downloading a file in
POST
method - https://stackoverflow.com/questions/61230581/download-file-with-axios-post-method-in-vue-js - Node.js, Axios Library: Forcing
GET
request to download an asset - https://stackoverflow.com/questions/43432892/force-download-get-request-using-axios - Node.js, Axios Library: Passing
headers
in thePOST
request - https://stackoverflow.com/questions/44617825/passing-headers-with-axios-post-request - Javascript: How to get the target of the proxy? - https://stackoverflow.com/questions/51096547/how-to-get-the-target-of-a-javascript-proxy
- Javascript: Date Incrementation - https://stackoverflow.com/questions/3674539/incrementing-a-date-in-javascript
- Javascript: Understanding the dollar sign
$
- https://stackoverflow.com/questions/846585/what-is-the-purpose-of-the-dollar-sign-in-javascript - Python
ArgumentParser
Library: Best practices for the validation of the context passed in the parameter - https://stackoverflow.com/questions/37471636/python-argument-parsing-validation-best-practices - Python AsyncIO: Implementing an Asynchronous
__init__
method for class and useawait
for instantiation - https://stackoverflow.com/questions/33128325/how-to-set-class-attribute-with-await-in-init - Python AsyncIO: Keyword arguments to pass on a async function (Afaik, this search was made possible by creating a wrapper library that takes
aiohttp
and create an queueing system) - https://stackoverflow.com/questions/23946895/requests-in-asyncio-keyword-arguments - Python AsyncIO: Understanding the calls for an async method from a class - https://stackoverflow.com/questions/42009202/how-to-call-a-async-function-contained-in-a-class
- Python AsyncIO: Understanding why
run_in_executor
() is fine vs. multithreading library - https://stackoverflow.com/questions/55027940/is-run-in-executor-optimized-for-running-in-a-loop-with-coroutines - Python AsyncIO: Pythonic way on waiting a coroutine to finish, (I forgot to do this, and instead I used their low level API to wait instead of creating an
Event
flag) - https://stackoverflow.com/questions/65352682/python-asyncio-pythonic-way-of-waiting-until-condition-satisfied - Python AsyncIO:
RuntimeError: Exception ignored in: <function _ProactorBasePipeTransport>
- https://stackoverflow.com/questions/65682221/runtimeerror-exception-ignored-in-function-proactorbasepipetransport - Python AsyncIO:
TypeError: Can't pickle coroutine objects when using asyncio.loop.run_in_executor()
- https://stackoverflow.com/questions/65557258/typeerror-cant-pickle-coroutine-objects-when-i-am-using-asyncio-loop-run-in-ex - Python AsyncIO: Waiting for
stdin
input stream while there's a background process - https://stackoverflow.com/questions/58454190/python-async-waiting-for-stdin-input-while-doing-other-stuff - Python Database, SQLite:
database is locked
- https://stackoverflow.com/questions/2740806/python-sqlite-database-is-locked - Python
datetime
: Converting a string backisoformat()
to adatetime
object - https://stackoverflow.com/questions/28331512/how-to-convert-pythons-isoformat-string-back-into-datetime-object - Python Dictionary: Sorting a list from the dictionary - https://stackoverflow.com/questions/72899/how-do-i-sort-a-list-of-dictionaries-by-a-value-of-the-dictionary
- Python Dictionary: Copying a dictionary without modifying the original reference (This issue was inspired from the C's datetime object problem wherein a copied object reflects the changes to the original object) - https://stackoverflow.com/questions/2465921/how-to-copy-a-dictionary-and-only-edit-the-copy
- Python Enum Object: Checking if string exists in Enum of Strings - https://stackoverflow.com/questions/63335753/how-to-check-if-string-exists-in-enum-of-strings
- Python Enum Objet: Checking if there's an
int
inside of an Enum object - https://stackoverflow.com/questions/43634618/how-do-i-test-if-int-value-exists-in-python-enum-without-using-try-catch - Python Environmental Variable Display on
pwsh
prompt is duplicated - https://stackoverflow.com/questions/16257950/how-to-create-a-python-virtualenv-environment-without-prompt-prefix - Python Exceptions: How to properly ignore them? - https://stackoverflow.com/questions/730764/how-to-properly-ignore-exceptions
- Python Function Definition: Understanding the Bare Asterisk (
*
) in the function parameter - https://stackoverflow.com/questions/14301967/bare-asterisk-in-function-parameters - Python Function Definition: Restricting a function to only receive a keyname + value after Bare Asterisk (
*
) - https://stackoverflow.com/questions/2965271/forced-naming-of-parameters-in-python/14298976#14298976 - Python IO: Going one back directory tree with
Pathlib
- https://stackoverflow.com/questions/67251538/python-how-to-go-one-folder-back-in-pathlib - Python IO: Checking if a directory exists - https://stackoverflow.com/questions/8933237/how-do-i-check-if-directory-exists-in-python
- Python Limits: Identifying the maximum and minimum value of an
Integer
- https://stackoverflow.com/questions/7604966/maximum-and-minimum-values-for-ints - Python MyPy: Untyped decorator makes function untyped (I was unable to resolve this due to the complexity argument of my own decorator, which also takes an argument) - https://stackoverflow.com/questions/65621789/mypy-untyped-decorator-makes-function-my-method-untyped
- Python Naming Convention: Understanding the single and double underscore prefixes - https://stackoverflow.com/questions/1301346/what-is-the-meaning-of-single-and-double-underscore-before-an-object-name
- Python Object: Checking the possibility wherein a singe object is called throughout the whole file (This search was made possible due to the issue of circular dependencies) - https://stackoverflow.com/questions/63189935/is-it-possible-to-use-the-same-object-in-multiple-files
- Python Object: Attempting to validate objects instance with
isinstance()
in loop approach - https://stackoverflow.com/questions/43870709/how-to-apply-isinstance-on-objects-in-a-python-dictionary-using-a-for-loop - Python Object: Determining an object's size - https://stackoverflow.com/questions/449560/how-do-i-determine-the-size-of-an-object-in-python
- Python Object: Static methods and how do I call them (**This is just a revisit from actually using
@staticmethod()
) - https://stackoverflow.com/questions/1859959/static-methods-how-to-call-a-method-from-another-method - Python Object Manipulation: Changing a dictionary whilst another changes were done, the workaround - https://stackoverflow.com/questions/11941817/how-can-i-avoid-runtimeerror-dictionary-changed-size-during-iteration-error
- Python Object Manipulation: Combining two dictionaries in shorthand - https://stackoverflow.com/questions/38987/how-do-i-merge-two-dictionaries-in-a-single-expression
- Python Object Manipulation: Custom implementation of the
list
sorting - https://stackoverflow.com/questions/11850425/custom-python-list-sorting - Python Object Manipulation: Doing a reverse list without for loop method - https://stackoverflow.com/questions/4183506/python-list-sort-in-descending-order
- Python
sockets
: Identifying a port number's state whether it's in-use or not - https://stackoverflow.com/questions/2470971/fast-way-to-test-if-a-port-is-in-use-using-python - Python Process Runtime Error:
OSError: [Errno 18] Invalid cross-device link
- https://stackoverflow.com/questions/42392600/oserror-errno-18-invalid-cross-device-link - Python SQLAlchemy: Concepts behind
backred
andback_populate
- https://stackoverflow.com/questions/51335298/concepts-of-backref-and-back-populate-in-sqlalchemy - Python SQLAlchemy: Counting a
SELECT *
(This search was made possible due to the difficulty of finding appropriate API for interacting with the Database) - https://stackoverflow.com/questions/12941416/how-to-count-rows-with-select-count-with-sqlalchemy - Python SQLAlchemy:
default
parameter doesn't work after sending a payload in the database - https://stackoverflow.com/questions/20348801/why-isnt-sqlalchemys-default-column-value-working - Python SQLAlchemy:
default
parameter for thedatetime
field - https://stackoverflow.com/questions/13370317/sqlalchemy-default-datetime - Python SQLAlchemy:
Encrypt a column without automatically decrypting upon retrieval
, (used as a concept but scraped later on and turned in an idea instead) - https://stackoverflow.com/questions/49560609/sqlalchemy-encrypt-a-column-without-automatically-decrypting-upon-retrieval - Python SQLAlchemy:
IS NOT NULL
select approach, how-to - https://stackoverflow.com/questions/21784851/sqlalchemy-is-not-null-select - Python SQLAlchemy:
select
where condition contains boolean expressionis False
- https://stackoverflow.com/questions/48274553/sqlalchemy-core-select-where-condition-contains-boolean-expression-is-false - Python SQLAlchemy: Understanding the use of
back_populate
- https://stackoverflow.com/questions/39869793/when-do-i-need-to-use-sqlalchemy-back-populates - Python SMTP: Sending an email with Gmail as provider - https://stackoverflow.com/questions/10147455/how-to-send-an-email-with-gmail-as-provider-using-python
- Python SMTP: Understanding the SSL version error (This occured during my prototyping session with the email) - https://stackoverflow.com/questions/57715289/how-to-fix-ssl-sslerror-ssl-wrong-version-number-wrong-version-number-ssl
- Python Stacktrace: Silencing the stacktrace (This search was made possible due to some coroutines failed to close the connection or do
close
() after attempting to doCTRL + C
during debugging days) - https://stackoverflow.com/questions/17784849/print-an-error-message-without-printing-a-traceback-and-close-the-program-when-a - Python
string
: Check if multiple strings exists from the another - https://stackoverflow.com/questions/3389574/check-if-multiple-strings-exist-in-another-string - Python Terminal Call Libraries: Understanding the differences between
subprocess.Popen
andos.system
- https://stackoverflow.com/questions/4813238/difference-between-subprocess-popen-and-os-system - Python Typing: Cannot import
NoneType
- https://stackoverflow.com/questions/15844714/why-am-i-getting-an-error-message-in-python-cannot-import-name-nonetype - Python Typing: TypeError: unhashable type: 'dict' (Implementation complexity leads me to this error) - https://stackoverflow.com/questions/13264511/typeerror-unhashable-type-dict
- Python Type Annotation: Annotating a
class
instead of theinstance
- https://stackoverflow.com/questions/41417679/how-to-annotate-a-type-thats-a-class-object-instead-of-a-class-instance - Python Type Object Conversion (bytes to dict, used to serialize and restore blockchain system) - https://stackoverflow.com/questions/19232011/convert-dictionary-to-bytes-and-back-again-python
- Sockets: Checking which process uses TCP or UDP port - https://stackoverflow.com/questions/48198/how-do-i-find-out-which-process-is-listening-on-a-tcp-or-udp-port-on-windows
- SMTP: Google flags SMTP as less secure applications - https://stackoverflow.com/questions/47451890/google-smtp-less-secure-applications
- SMTP: Gmail error, SMTP server requires a secure connection or the client was not authenticated. - https://stackoverflow.com/questions/20906077/gmail-error-the-smtp-server-requires-a-secure-connection-or-the-client-was-not
- Vim: How to get vim to open multiple files into tabs at once (I'm using Visual Studio Code + Vim Extension) - https://superuser.com/questions/171763/how-to-get-vim-to-open-multiple-files-into-tabs-at-once
- VSCode: How to allow
.jsonc
? - https://stackoverflow.com/questions/47834825/in-vs-code-disable-error-comments-are-not-permitted-in-json - VSCode: Keybinds for 'Hovering Info' on Cursor (I have to know since my diagnostics tab contains enormous amount of diagnostics) - https://stackoverflow.com/questions/49146283/how-to-show-errors-warnings-by-hotkey-in-vscode/49147540
- VSCode: Keybind for searching a file through the 'File Explorer' - https://stackoverflow.com/questions/30095376/how-do-i-search-for-files-in-visual-studio-code
- Vue.js 3, ESLint:
The template root requires exactly one element
- https://stackoverflow.com/questions/64867504/vue-3-the-template-root-requires-exactly-one-element-eslint-plugin-vue - Vue.js 3, Identifying
events
on route change - https://stackoverflow.com/questions/46402809/vuejs-event-on-route-change - Vue.js 3, Quasar Framework: Accessing
$route
- https://stackoverflow.com/questions/69767642/access-to-route-in-vue3-quasar2 - Vue.js 3, Quasar Framework: Adding
href
to a<q-table>
- https://stackoverflow.com/questions/56514641/how-can-i-add-an-href-to-a-q-table-quasar-data-table - Vue.js 3, Quasar Framework:
Onclick even on q-table stops working after passing props to template
- https://stackoverflow.com/questions/64879628/onclick-event-on-q-table-stop-working-after-passing-props-to-template - Vue.js 3, Quasar Framework: Submitting a form with
Enter
key - https://stackoverflow.com/questions/64828512/vue-js-how-can-i-submit-a-form-with-the-enter-key - Vue.js 3, Vue Router: Adding dynamic link in
<router-link>
- https://stackoverflow.com/questions/55449363/how-to-give-dynamic-url-in-router-link-in-vuejs - Vue.js 3, Vue Router: Apply
active
styles - https://stackoverflow.com/questions/46083220/how-to-vuejs-router-link-active-style - Vue.js 3, Vue Router: Using
regex
as path for optimization - https://stackoverflow.com/questions/51302405/use-regex-in-vue-router-paths - Vue.js 3, Knowing how to go back/route-back - https://stackoverflow.com/questions/48104842/how-can-i-go-back-route-back-on-vue-router
References indicated are tools or utilities that I used to debug, generate entities for PoC, and etc.
- Code Image: Carbon - https://carbon.now.sh/
- Lorem Picsum (Literally lorem ipsum, but in images) - https://picsum.photos/
- Material Design Guidelines: The Color Tool - https://m2.material.io/resources/color/
- JSON Formatter and Validator - https://jsonformatter.curiousconcept.com/
- QR Code Generator - https://www.qr-code-generator.com/
- regex101: build, test, and debug regex - https://regex101.com/
- SSL Encryption for the Backend: Let's Encrypt - https://letsencrypt.org
- SSL Encryption for the Backend: Certbot - https://certbot.eff.org/
- This Person Does Not Exists - https://thispersondoesnotexist.com/
- ui-avatars (For the generation of UI default avatar) - https://github.com/LasseRafn/ui-avatars