{"id":15170839,"url":"https://github.com/empobla/sidequest","last_synced_at":"2026-01-25T17:04:07.774Z","repository":{"id":86605274,"uuid":"592647959","full_name":"empobla/SideQuest","owner":"empobla","description":"A web app created to work as a wiki for a personal Dungeons and Dragons campaign and a character and story manager.","archived":false,"fork":false,"pushed_at":"2023-01-26T00:05:21.000Z","size":32361,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-17T06:15:53.570Z","etag":null,"topics":["expressjs","mongodb","nodejs","pugjs","wiki"],"latest_commit_sha":null,"homepage":"https://sidequest.demo.emilioppv.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/empobla.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-24T07:59:26.000Z","updated_at":"2023-01-28T04:49:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"5198bf45-8726-4450-ba75-39f456d689f1","html_url":"https://github.com/empobla/SideQuest","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/empobla%2FSideQuest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/empobla%2FSideQuest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/empobla%2FSideQuest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/empobla%2FSideQuest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/empobla","download_url":"https://codeload.github.com/empobla/SideQuest/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239242106,"owners_count":19605954,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["expressjs","mongodb","nodejs","pugjs","wiki"],"created_at":"2024-09-27T08:23:37.512Z","updated_at":"2025-11-01T00:30:31.566Z","avatar_url":"https://github.com/empobla.png","language":"JavaScript","readme":"\u003c!-- Improved compatibility of back to top link: See: https://github.com/othneildrew/Best-README-Template/pull/73 --\u003e\n\u003ca name=\"readme-top\"\u003e\u003c/a\u003e\n\u003c!--\n*** Thanks for checking out the Best-README-Template. If you have a suggestion\n*** that would make this better, please fork the repo and create a pull request\n*** or simply open an issue with the tag \"enhancement\".\n*** Don't forget to give the project a star!\n*** Thanks again! Now go create something AMAZING! :D\n--\u003e\n\n\n\n\u003c!-- PROJECT SHIELDS --\u003e\n\u003c!--\n*** I'm using markdown \"reference style\" links for readability.\n*** Reference links are enclosed in brackets [ ] instead of parentheses ( ).\n*** See the bottom of this document for the declaration of the reference variables\n*** for contributors-url, forks-url, etc. This is an optional, concise syntax you may use.\n*** https://www.markdownguide.org/basic-syntax/#reference-style-links\n--\u003e\n[![Portfolio][moreinfo-shield]][moreinfo-url]\n[![LinkedIn][linkedin-shield]][linkedin-url]\n\n\n\n\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/empobla/SideQuest\"\u003e\n    \u003cimg src=\"public/images/logos/logo.png\" alt=\"Logo\" width=\"200\"\u003e\n  \u003c/a\u003e\n\n\u003ch3 align=\"center\"\u003eSideQuest\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    A web app created to work as a wiki for a personal Dungeons and Dragons campaign and a character and story manager.\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    ·\n    \u003ca href=\"https://sidequest.demo.emilioppv.com\"\u003eView Demo\u003c/a\u003e\n    ·\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003cdetails\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\n      \u003ca href=\"#about-the-project\"\u003eAbout The Project\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#built-with\"\u003eBuilt With\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#prerequisites\"\u003ePrerequisites\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#roadmap\"\u003eRoadmap\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#abilities-mastered\"\u003eAbilities Mastered\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#dependency-list\"\u003eDependency List\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#versions\"\u003eVersions\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contact\"\u003eContact\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#acknowledgments\"\u003eAcknowledgments\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n## About The Project\n\n[![SideQuest Screen Shot][product-screenshot]](https://sidequest.demo.emilioppv.com)\n\nSideQuest is a web app created to work as a wiki for a personal Dungeons and Dragons campaign and a character and story manager. It is made to facilitate and enhance the Dungeons and Dragons players' experience and facilitate worldbuilding and session creation for the Dungeon Master that runs the Dungeons and Dragons campaign. The main objective of this fullstack development project was to practice and perfect my overall backend development skills.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n### Built With\n\n[![MongoDB][MongoDB]][Mongo-url]\n[![Express][Express.js]][Express-url]\n[![Pug][Pug.js]][Pug-url]\n[![Node][Node.js]][Node-url]\n[![Heroku][Heroku]][Heroku-url]\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- GETTING STARTED --\u003e\n## Getting Started\n\nTo get a local copy up and running follow these simple example steps.\n\n### Prerequisites\n\nThis project requires Node.js, MongoDB, and Cloudinary. A MongoDB server must be set up locally or in the cloud before using this project. Also, a Cloudinary account must be setup.\n* Install npm:\n  ```sh\n  npm install npm@latest -g\n  ```\n* Install [MongoDB Community Server][MongoDB-community-url] or set up [MongoDB Atlas][MongoDB-atlas-url]. Instructions for MongoDB Community Server can be found [here][MongoDB-instructions-url].\n* Setup a [Cloudinary][Cloudinary-url] account by following the first step on [this tutorial][Cloudinary-instructions-url].\n\n### Installation\n\n1. Clone the repo\n   ```sh\n   git clone https://github.com/empobla/SideQuest.git\n   ```\n2. Install NPM packages\n   ```sh\n   npm install\n   ```\n3. In the project's directory, create a `.env` file with the following keys:\n   ```text\n   DB=\u003cMONGODB_URI\u003e\n\n   SECRET=\u003cCREATE_A_SECRET\u003e\n  \n   CLOUDINARY_NAME=\u003cCLOUDINARY_NAME\u003e\n   CLOUDINARY_API_KEY=\u003cCLOUDINARY_API_KEY\u003e\n   CLOUDINARY_API_SECRET=\u003cCLOUDINARY_API_SECRET_KEY\u003e\n   ```\n   _Note: Replace everything in between `\u003c\u003e` with your actual keys, and create a secret key._\n  \n4. Start the server in development mode!\n   ```sh\n   npm run devstart\n   ```\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- ROADMAP --\u003e\n## Roadmap\n\n- [x] Announcements\n- [x] CRUD\n  - [x] Hero\n  - [x] Story\n  - [x] Character\n  - [x] Spell\n  - [x] Maps\n- [x] Pagedown markdown text editor\n  - [x] Update editor to be CKEditor5 WYSIWYG\n- [x] PDF generation and display of character sheet\n- [x] Admin Panel\n  - [x] User management\n- [x] UI\n  - [x] Responsive design for all screens\n  - [x] Improve hero view\n  - [x] Improve character view\n  - [x] Improve story view\n- [x] DM Panel\n  - [x] Race and Class CRUD\n  - [x] Notes\n- [x] Comments\n- [x] Search\n- [x] Templatable CSS using variables\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- ABILITIES MASTERED --\u003e\n## Abilities Mastered\n\n* Fullstack Web Development\n* Web Security\n* Ajax\n* Webpack\n* Implementation of WYSIWYG text editors (such as CKEditor)\n* PDF creation and manipulation through JavaScript\n* Use of APIs\n* JavaScript DOM and CSS manipulation\n* Templatable CSS\n* Application and use of Regular Expressions\n* Responsive web design\n* Version control (GitHub)\n* Wireframing\n* Deployment to platforms such as Heroku\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- DEPENDENCY LIST --\u003e\n## Dependency List\n\n### Data dependencies:\n* **mongodb**: For connecting to MongoDB\n* **mongoose**: Middleware for MongoDB\n\n### Media dependencies:\n* **cloudinary**: For image uploads\n* **multer**: For handling `enctype=\"multipart/form-data\"`\n    \n### Production dependencies:\n* **dotenv**: For allowing .env files and usage through process.env.VAR for delicate data\n* **compression**: For compressesing files and optimizing website for user use\n* **helmet**: For securing website data\n\n### Security dependencies:\n* **body-parser**: For limiting the request body payload the user can submit\n* **express-rate-limit**: For limiting the amount of requests per window of time a user can make\n* **express-mongo-sanitize**: For replacing '$' and '.' from user inputs to prevent NoSQL injection attacks\n\n### User dependencies:\n* **express-session**: For handling sessions\n* **express-validator**: For validating and sanitizing user inputs\n* **connect-mongo**: MongoDB session store        \n* **mongoose-bcrypt**: For hashing and salting passwords and sensitive information\n* **passport**: For authenticating info and passwords through strategies\n    * **passport-local**: Local strategy for passport\n    * **passport-local-mongoose**: Local strategy for mongoose passport\n\n### Flash messages:\n* **connect-flash**: Provides methods for flash messages\n\n### PDF Dependencies:\n* **pdflib**: For editing and rendering pdfs programatically\n\n### WYSIWYG Editors:\n* **webpack**: For compiling ckeditor5 javascript files into client-side usable javascript modules\n* **ckeditor5**: For the WYSIWYG editor\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- VERSIONS --\u003e\n## Versions\n\nThese are the versions that have existed for SideQuest D\u0026D website, with some pictures and a description of each version.\n\n### SideQuest D\u0026D Alpha\nThis was the first release of SideQuest D\u0026D. It was released August 4, 2020. This version of the website was not very popular and was in a primitively functional state.\n\nThis release offered the following functionalities:\n* Announcement creation and display in homepage\n* Hero creation and modification\n* Story creation and modification\n* Character creation and modification\n* Spell creation and modification\n* Markdown text editor (pagedown)\n* PDF generation and display of character sheet\n* Superficial admin user management\n\nThis release had the following problems:\n* DM had to create heroes for the users\n* Hero creation UI was non-intuitive and 100% manual\n* UI overall was ugly\n* Admin section was unintuitive and had very restricted functionality\n\nSideQuest D\u0026D Alpha can no longer be found in this repository.\n\n\u003cdetails\u003e\n\n\u003csummary markdown='span'\u003eImages\u003c/summary\u003e\n\n#### **Home Page**\n\u003cp align='center'\u003e\n\u003cimg src='README/images/versions/alpha/home.png'\u003e\n\u003c/p\u003e\n\n#### **Hero View**\n\u003cimg src='README/images/versions/alpha/hero/hero0.png'\u003e\n\n|  |  |\n|------------|-------------|\n| \u003cimg src='README/images/versions/alpha/hero/hero1.jpeg' width='100%'\u003e | \u003cimg src='README/images/versions/alpha/hero/hero2.jpeg' width='100%'\u003e |\n\n\n\n#### **Hero Spells View**\n|  |  |\n|------------|-------------|\n| \u003cimg src='README/images/versions/alpha/hero/herospells0.png' width='100%'\u003e | \u003cimg src='README/images/versions/alpha/hero/herospells1.png' width='100%'\u003e\n\n\n#### **Story View**\n\u003cimg src='README/images/versions/alpha/story/0.jpeg'\u003e\n\n#### **Edit Hero Spells**\n|  |  |\n|------------|-------------|\n| \u003cimg src='README/images/versions/alpha/edit_spells/0.png'\u003e | \u003cimg src='README/images/versions/alpha/edit_spells/1.png'\u003e\n| \u003cimg src='README/images/versions/alpha/edit_spells/2.png'\u003e | \u003cimg src='README/images/versions/alpha/edit_spells/3.png'\u003e\n\n#### **Edit Story**\n\u003cimg src='README/images/versions/alpha/edit_story/0.jpeg'\u003e\n\n\u003c/details\u003e\n\n### SideQuest D\u0026D Release v1.0.0\n\nThis is the current stable released version of SideQuest D\u0026D. It has a completely reworked UI and has many more features than the [alpha](#sidequest-dd-alpha) version offered. Users liked this version a lot and used it much more.\n\nThe most popular pages of this release are the Characters and Story pages.\n\nThis release offered the following functionalities:\n* Improved UI:\n    * Responsive design for all screens\n    * Improved hero view UI\n    * Improved character view UI\n    * Improved story view UI\n* New additions:\n    * Race and Class creation\n    * Map section\n    * DM Notes section\n    * Comment section\n    * Search bar for stories, characters, maps, spells, races, classes, and notes\n    * Dedicated DM and Admin Sections\n    * WYSIWYG Text Editors (CKEditor5)\n* Improved security:\n    * Validation and sanitization of all input fields (Prevent XSS attacks)\n    * Body-parsing to limit user input payloads (prevent DoS attacks)\n    * Rate-limiting to limit amount of user requests in a time window (prevent DoS and Brute Force attacks)\n    * Further sanitization of strings starting with '$' and '.' to prevent NoSQL injection attacks\n    * Default production render page as to not show actual errors to users\n* Re-designed hero schema\n* More intutive character creation, many things were made automatic\n* Dedicated spell page for spell creation, lookup, and editing\n* Ajax implementation for spells\n* More expansive Admin permisions and functionality\n* Templatable code\n* GitHub deployment\n\n\u003cdetails\u003e\n\n\u003csummary markdown='span'\u003eImages\u003c/summary\u003e\n\n#### **Home Page**\n\u003cp align='center'\u003e\n\u003cimg src='README/images/versions/1.0.0/home.png'\u003e\n\u003c/p\u003e\n\n#### **Hero Page**\n\u003cp align='center'\u003e\n\u003cimg src='README/images/versions/1.0.0/heroes.png'\u003e\n\u003c/p\u003e\n\n#### **Hero View**\n\u003cp align='center'\u003e\n\u003cimg src='README/images/versions/1.0.0/heroview.png'\u003e\n\u003c/p\u003e\n\n#### **Character Page**\n\u003cp align='center'\u003e\n\u003cimg src='README/images/versions/1.0.0/characters.png'\u003e\n\u003c/p\u003e\n\n#### **Character View**\n\u003cp align='center'\u003e\n\u003cimg src='README/images/versions/1.0.0/characterview.png'\u003e\n\u003c/p\u003e\n\n#### **Story Page**\n\u003cp align='center'\u003e\n\u003cimg src='README/images/versions/1.0.0/stories.png'\u003e\n\u003c/p\u003e\n\n#### **Story View**\n\u003cp align='center'\u003e\n\u003cimg src='README/images/versions/1.0.0/storyview.png'\u003e\n\u003c/p\u003e\n\n#### **Map Page**\n\u003cp align='center'\u003e\n\u003cimg src='README/images/versions/1.0.0/maps.png'\u003e\n\u003c/p\u003e\n\n#### **Map View**\n\u003cp align='center'\u003e\n\u003cimg src='README/images/versions/1.0.0/mapsview.png'\u003e\n\u003cimg src='README/images/versions/1.0.0/templateview.png'\u003e\n\u003c/p\u003e\n\n#### **Login Page**\n\u003cp align='center'\u003e\n\u003cimg src='README/images/versions/1.0.0/login.png'\u003e\n\u003c/p\u003e\n\n#### **Signup Page**\n\u003cp align='center'\u003e\n\u003cimg src='README/images/versions/1.0.0/signup.png'\u003e\n\u003c/p\u003e\n\n#### **User Account Page**\n\u003cp align='center'\u003e\n\u003cimg src='README/images/versions/1.0.0/useraccountview.png'\u003e\n\u003c/p\u003e\n\n#### **Edit Hero**\n\u003cp align='center'\u003e\n\u003cimg src='README/images/versions/1.0.0/useredithero0.png'\u003e\n\u003cimg src='README/images/versions/1.0.0/useredithero1.png'\u003e\n\u003cimg src='README/images/versions/1.0.0/useredithero2.png'\u003e\n\u003cimg src='README/images/versions/1.0.0/useredithero3.png'\u003e\n\u003cimg src='README/images/versions/1.0.0/useredithero4.png'\u003e\n\u003c/p\u003e\n\n#### **Spells Page**\n\u003cp align='center'\u003e\n\u003cimg src='README/images/versions/1.0.0/spells.png'\u003e\n\u003cimg src='README/images/versions/1.0.0/spellcreator.png'\u003e\n\u003c/p\u003e\n\n#### **Edit Character Page**\n\u003cp align='center'\u003e\n\u003cimg src='README/images/versions/1.0.0/usereditcharacters.png'\u003e\n\u003c/p\u003e\n\n#### **Edit Story Page**\n\u003cp align='center'\u003e\n\u003cimg src='README/images/versions/1.0.0/usereditstory.png'\u003e\n\u003c/p\u003e\n\n#### **Edit Map Page**\n\u003cp align='center'\u003e\n\u003cimg src='README/images/versions/1.0.0/usereditmaps.png'\u003e\n\u003c/p\u003e\n\n#### **Admin Account Page**\n\u003cp align='center'\u003e\n\u003cimg src='README/images/versions/1.0.0/adminview.png'\u003e\n\u003c/p\u003e\n\n#### **Admin Users Page**\n\u003cp align='center'\u003e\n\u003cimg src='README/images/versions/1.0.0/adminusers.png'\u003e\n\u003c/p\u003e\n\n#### **Admin User Edit**\n\u003cp align='center'\u003e\n\u003cimg src='README/images/versions/1.0.0/adminuseredit.png'\u003e\n\u003c/p\u003e\n\n#### **Admin and DM Announcement Edit**\n\u003cp align='center'\u003e\n\u003cimg src='README/images/versions/1.0.0/adminannouncements.png'\u003e\n\u003c/p\u003e\n\n#### **Admin Races Edit**\n\u003cp align='center'\u003e\n\u003cimg src='README/images/versions/1.0.0/admineditrace.png'\u003e\n\u003c/p\u003e\n\n#### **Admin Classes Edit**\n\u003cp align='center'\u003e\n\u003cimg src='README/images/versions/1.0.0/admineditclass.png'\u003e\n\u003c/p\u003e\n\n#### **DM Account Page**\n\u003cp align='center'\u003e\n\u003cimg src='README/images/versions/1.0.0/dmview.png'\u003e\n\u003c/p\u003e\n\n#### **DM Note Page**\n\u003cp align='center'\u003e\n\u003cimg src='README/images/versions/1.0.0/dmnotes.png'\u003e\n\u003c/p\u003e\n\n#### **DM Note Creator**\n\u003cp align='center'\u003e\n\u003cimg src='README/images/versions/1.0.0/dmnotecreate.png'\u003e\n\u003c/p\u003e\n\n#### **DM Note Viewer**\n\u003cp align='center'\u003e\n\u003cimg src='README/images/versions/1.0.0/dmnoteview.png'\u003e\n\u003c/p\u003e\n\n#### **DM Note Editor**\n\u003cp align='center'\u003e\n\u003cimg src='README/images/versions/1.0.0/dmnoteedit.png'\u003e\n\u003c/p\u003e\n\u003c/details\u003e\n\n**Fun Fact**: This project is composed of 11,272 lines of code.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- LICENSE --\u003e\n## License\n\nThis project is property of Emilio Popovits Blake. All rights are reserved. Modification or redistribution of this code must have _explicit_ consent from the owner.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- CONTACT --\u003e\n## Contact\n\nEmilio Popovits Blake - [Contact](https://emilioppv.com/contact)\n\nProject Link: [https://github.com/empobla/SideQuest](https://github.com/empobla/SideQuest)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- ACKNOWLEDGMENTS --\u003e\n## Acknowledgments\n\n* [[CKEditor5] Quick Start](https://ckeditor.com/docs/ckeditor5/latest/framework/guides/quick-start.html)\n* [[CKEditor5] Advanced Setup](https://ckeditor.com/docs/ckeditor5/latest/builds/guides/integration/advanced-setup.html)\n* [[CKEditor5] Configuration](https://ckeditor.com/docs/ckeditor5/latest/builds/guides/integration/configuration.html)\n* [[CKEditor5] Config Class](https://ckeditor.com/docs/ckeditor5/latest/api/module_utils_config-Config.html)\n* [[CKEditor5] Getting and Saving Data](https://ckeditor.com/docs/ckeditor5/latest/builds/guides/integration/saving-data.html)\n* [[ui.dev] WebPack](https://ui.dev/webpack/)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\n[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge\u0026logo=linkedin\u0026colorB=555\n[linkedin-url]: https://linkedin.com/in/emilio-popovits\n\n[product-screenshot]: README/images/versions/1.0.0/home.png\n\n[MongoDB]: https://img.shields.io/badge/mongodb-ffffff?style=for-the-badge\u0026logo=mongodb\u0026logoColor=47a248\n[Mongo-url]: https://www.mongodb.com/\n[Express.js]: https://img.shields.io/badge/express-000000?style=for-the-badge\u0026logo=express\u0026logoColor=ffffff\n[Express-url]: https://expressjs.com/\n[Pug.js]: https://img.shields.io/badge/pug.js-a86454?style=for-the-badge\u0026logo=pug\u0026logoColor=000000\n[Pug-url]: https://pugjs.org\n[Node.js]: https://img.shields.io/badge/node.js-090c15?style=for-the-badge\u0026logo=nodedotjs\u0026logoColor=339933\n[Node-url]: https://nodejs.org\n[Heroku]: https://img.shields.io/badge/heroku-430098?style=for-the-badge\u0026logo=heroku\u0026logoColor=ffffff\n[Heroku-url]: https://www.heroku.com/\n\n[MongoDB-community-url]: https://www.mongodb.com/try/download/community\n[MongoDB-atlas-url]: https://www.mongodb.com/atlas/database\n[MongoDB-instructions-url]: https://www.mongodb.com/docs/manual/administration/install-community\n[Cloudinary-url]: https://cloudinary.com/\n[Cloudinary-instructions-url]: https://cloudinary.com/documentation/how_to_integrate_cloudinary#1_create_your_account_and_set_up_your_product_environment\n\n[moreinfo-url]: https://emilioppv.com/portfolio/sidequest\n[moreinfo-shield]: https://img.shields.io/badge/more%20info-1b1f24?style=for-the-badge\u0026logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAMAAAAolt3jAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAApVBMVEUbHyQbHyQbHyRnam2sra+vsbKys7Wsrq+goqQwNDgaHyQaIilbXWGChIZMT1OYmpwYQFoaICYXRF8WUHQZLjwvMzdwcnaztLZ1d3pcX2IaICUXTG0WUHMXS2sXSGcWT3MaKjcpLTFVWFyFh4lTVllvcnWpqqwYOEwZM0QXTW4XTnAaJS8lKS3IycoYPlYaIyt4e36rra60tba5urutr7BQU1cAAAB8HBV3AAAAAnRSTlOR/KrCyFQAAAABYktHRDZHv4jRAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH5wEZCiUZVutNzgAAAGpJREFUCNdjYGBkggNGBmQeiM+EAjC5zCwsrGzsHJwQLhc3ExMPLxMfP5OAIBODkLCIqBi/uASHpJS0jCyDnLyCopIyh4qqmrqGphYDk5Q2WLGOrh63PsgoA0NDI2NDE1PsFqFw0RyJ6gUAuK4HVipJCoQAAAAuelRYdGRhdGU6Y3JlYXRlAAAImTMyMDLWNTDUNTINMTSwMja3MjLVNjCwMjAAAEFRBQlQZi6pAAAALnpUWHRkYXRlOm1vZGlmeQAACJkzMjAy1jUw1DUyDTE0sDI2tzIy1TYwsDIwAABBUQUJeVmGIQAAAABJRU5ErkJggg==","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fempobla%2Fsidequest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fempobla%2Fsidequest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fempobla%2Fsidequest/lists"}