The Debate Map project is a web platform aimed at improving the efficiency of discussion and debate. It's crowd-sourced and open-source, and welcomes reader contributions.
Its primary improvements are (in short):
- Restructuring dialogue to make use of both dimensions.
- Breaking down lines of reasoning into single-sentence "nodes".
- Providing rich tools that operate on those nodes -- such as rating, tagging, statistical analysis, and belief-tree sharing and comparison.
The maps are constructed from “theses” (blue) which make claims, and “arguments” (green and red) which support/oppose those claims. This structure cuts down on reading time, and lets us focus on the underlying chains of reasoning instead of parsing statement meanings and connections.
For more information, visit the website at: https://debatemap.live
- Clone the repo to disk: https://github.com/Venryx/DebateMap.git
npm installin the root project folder.
- Using git, revert the
node_modulesfolder. (it has some git-tracked modifications, which get overwritten during
Note that I haven't thoroughly tested the setup process, so if something fails for you, I probably just forgot a step or two, so make an issue describing where you're stuck.
For recommended setup of your code editor and other tools, see: Editor setup
Firebase setup + project config
- Create two Google Firebase projects -- one for development, one for production.
- Edit the
Scripts/Build/CreateConfig.jsfiles, replacing their paths and data with your own.
- Add at least one form of authentication to your Firebase projects. (Google sign-in is easiest)
- Run the project locally. (see "Running locally" section below)
- Sign in, using the panel at the top-right.
- Add "?init=true" to the address-bar url, and reload the page.
- Press the "Initialize database" button which will appear at the top-left.
npm run tsc-watch) in a console, and keep it running in the background.
npm run devin the root project folder. (or
npm run dev-with-stats)
- Navigate to
Note that if you add/remove/modify any modules required from
Scripts/Config/Vendors.js, you'll then need to run
npm run create-vendors[-quick]. (those modules are compiled separately, to speed up the main compile process)
Deploying to Firebase
npm run tsc-watch) in a console, and keep it running in the background. (this reduces deploy:prod-quick compile times from ~59s to ~32s, by enabling incremental compilation)
npm run deploy:[dev/prod/prod-quick]. Note that
deploy:prod-quicktime is ~32s, vs ~86s for
deploy:prod(since the former doesn't use minification and such).
The below are optional recommendations on your editor setup, which will make editing the project more efficient and less error-prone. (since it matches the setup I use)
- Search node_modules: Very helpful for quickly opening files in modules under
- TypeScript Importer: Lets you press alt+enter to auto-import the current symbol from whatever module it's in.
- TypeScript Hero: Same as above. This one's not quite as nice, but picks up some that the above misses. Also, it has an "import all missing" command.
- If you get an odd compile error or the CSS does not seem to be loading for the site (when recompiling), try deleting the cache at "node_modules/.cache/hard-source".