Repository files navigation

Mafia 💎🖐

This is an online multiplayer take on the classic party game Mafia. The game splits players into civilians and mafia members. The goal of the game is simple, kill the opposing team. The full ruleset can be found here. However, since this is an OSS project, developers are free to edit rules and add new functionality as they please.

Please review the documentation for guidelines and information about the software.

Installation

Before you install and get started with this project, please ensure that you have installed nodejs and npm on your computer.

This project uses the package manager npm to install all dependencies.

First, clone the repository and open the project directory:

git clone git@github.com:Mafia-Hands/Mafia.git
cd Mafia

To run this application locally, the frontend and backend must run together. You can do it like so:

Frontend:

cd frontend
npm install
npm start

Backend:

cd backend
npm install
npm start

Note: You do not need to run npm install everytime. Only when a new package is added.

Note: Ensure that the socket.js file (frontend > src > socket.js) points to your local server by uncommenting the necessary line.

Usage

For development purposes, you can run the application locally by following the Installation Instructions.

If you would like to play the game, follow our guide on how to Get Started. If you don't know how to play Mafia, you can also read the Rules of the game!

Support

If you encounter any issues regarding this project, please create a Github Issue using the relevant template. You can also tag a specific contributor if you feel like they might be able to help you out.

Roadmap

Outstanding issues and requests can be tracked and visualised on our Github Projects page.

Backend

Frontend

DevOps

Documentation

Contributing

If you would like to contribute to this project, please make sure to follow our Contributing Guidelines.

Authors and acknowledgement

This project was coordinated by and for the University of Auckland course SOFTENG 701.

Thanks to:

  • University of Auckland - for providing the opportunity to work on and create this project
  • Dr Kelly Blincoe - for assistance with the development of this project

Also, special thanks to the members of Group 4 (Mafia Hands) for their hard work and dedication towards this project. A detailed list of their contributions can be found here.

Project Status

The original developers of this project have now concluded their involvement. Team 3 will be continuing the development process going forward. For a list of suggested additions to this app, take a look at the Future Works page on our Wiki.

Code of Conduct

Please ensure all code of conduct is followed.

License

Licensed under the Apache License 2.0 license

About

An online multiplayer take on the classic party game Mafia

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Mafia 💎🖐

This is an online multiplayer take on the classic party game Mafia. The game splits players into civilians and mafia members. The goal of the game is simple, kill the opposing team. The full ruleset can be found here. However, since this is an OSS project, developers are free to edit rules and add new functionality as they please.

Please review the documentation for guidelines and information about the software.

Installation

Before you install and get started with this project, please ensure that you have installed nodejs and npm on your computer.

This project uses the package manager npm to install all dependencies.

First, clone the repository and open the project directory:

git clone git@github.com:Mafia-Hands/Mafia.git
cd Mafia

To run this application locally, the frontend and backend must run together. You can do it like so:

Frontend:

cd frontend
npm install
npm start

Backend:

cd backend
npm install
npm start

Note: You do not need to run npm install everytime. Only when a new package is added.

Note: Ensure that the socket.js file (frontend > src > socket.js) points to your local server by uncommenting the necessary line.

Usage

For development purposes, you can run the application locally by following the Installation Instructions.

If you would like to play the game, follow our guide on how to Get Started. If you don't know how to play Mafia, you can also read the Rules of the game!

Support

If you encounter any issues regarding this project, please create a Github Issue using the relevant template. You can also tag a specific contributor if you feel like they might be able to help you out.

Roadmap

Outstanding issues and requests can be tracked and visualised on our Github Projects page.

Backend

Frontend

DevOps

Documentation

Contributing

If you would like to contribute to this project, please make sure to follow our Contributing Guidelines.

Authors and acknowledgement

This project was coordinated by and for the University of Auckland course SOFTENG 701.

Thanks to:

  • University of Auckland - for providing the opportunity to work on and create this project
  • Dr Kelly Blincoe - for assistance with the development of this project

Also, special thanks to the members of Group 4 (Mafia Hands) for their hard work and dedication towards this project. A detailed list of their contributions can be found here.

Project Status

The original developers of this project have now concluded their involvement. Team 3 will be continuing the development process going forward. For a list of suggested additions to this app, take a look at the Future Works page on our Wiki.

Code of Conduct

Please ensure all code of conduct is followed.

License

Licensed under the Apache License 2.0 license

About

An online multiplayer take on the classic party game Mafia

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Mafia 💎🖐

This is an online multiplayer take on the classic party game Mafia. The game splits players into civilians and mafia members. The goal of the game is simple, kill the opposing team. The full ruleset can be found here. However, since this is an OSS project, developers are free to edit rules and add new functionality as they please.

Please review the documentation for guidelines and information about the software.

Installation

Before you install and get started with this project, please ensure that you have installed nodejs and npm on your computer.

This project uses the package manager npm to install all dependencies.

First, clone the repository and open the project directory:

git clone git@github.com:Mafia-Hands/Mafia.git
cd Mafia

To run this application locally, the frontend and backend must run together. You can do it like so:

Frontend:

cd frontend
npm install
npm start

Backend:

cd backend
npm install
npm start

Note: You do not need to run npm install everytime. Only when a new package is added.

Note: Ensure that the socket.js file (frontend > src > socket.js) points to your local server by uncommenting the necessary line.

Usage

For development purposes, you can run the application locally by following the Installation Instructions.

If you would like to play the game, follow our guide on how to Get Started. If you don't know how to play Mafia, you can also read the Rules of the game!

Support

If you encounter any issues regarding this project, please create a Github Issue using the relevant template. You can also tag a specific contributor if you feel like they might be able to help you out.

Roadmap

Outstanding issues and requests can be tracked and visualised on our Github Projects page.

Backend

Frontend

DevOps

Documentation

Contributing

If you would like to contribute to this project, please make sure to follow our Contributing Guidelines.

Authors and acknowledgement

This project was coordinated by and for the University of Auckland course SOFTENG 701.

Thanks to:

  • University of Auckland - for providing the opportunity to work on and create this project
  • Dr Kelly Blincoe - for assistance with the development of this project

Also, special thanks to the members of Group 4 (Mafia Hands) for their hard work and dedication towards this project. A detailed list of their contributions can be found here.

Project Status

The original developers of this project have now concluded their involvement. Team 3 will be continuing the development process going forward. For a list of suggested additions to this app, take a look at the Future Works page on our Wiki.

Code of Conduct

Please ensure all code of conduct is followed.

License

Licensed under the Apache License 2.0 license

About

An online multiplayer take on the classic party game Mafia

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Mafia 💎🖐

This is an online multiplayer take on the classic party game Mafia. The game splits players into civilians and mafia members. The goal of the game is simple, kill the opposing team. The full ruleset can be found here. However, since this is an OSS project, developers are free to edit rules and add new functionality as they please.

Please review the documentation for guidelines and information about the software.

Installation

Before you install and get started with this project, please ensure that you have installed nodejs and npm on your computer.

This project uses the package manager npm to install all dependencies.

First, clone the repository and open the project directory:

git clone git@github.com:Mafia-Hands/Mafia.git
cd Mafia

To run this application locally, the frontend and backend must run together. You can do it like so:

Frontend:

cd frontend
npm install
npm start

Backend:

cd backend
npm install
npm start

Note: You do not need to run npm install everytime. Only when a new package is added.

Note: Ensure that the socket.js file (frontend > src > socket.js) points to your local server by uncommenting the necessary line.

Usage

For development purposes, you can run the application locally by following the Installation Instructions.

If you would like to play the game, follow our guide on how to Get Started. If you don't know how to play Mafia, you can also read the Rules of the game!

Support

If you encounter any issues regarding this project, please create a Github Issue using the relevant template. You can also tag a specific contributor if you feel like they might be able to help you out.

Roadmap

Outstanding issues and requests can be tracked and visualised on our Github Projects page.

Backend

Frontend

DevOps

Documentation

Contributing

If you would like to contribute to this project, please make sure to follow our Contributing Guidelines.

Authors and acknowledgement

This project was coordinated by and for the University of Auckland course SOFTENG 701.

Thanks to:

  • University of Auckland - for providing the opportunity to work on and create this project
  • Dr Kelly Blincoe - for assistance with the development of this project

Also, special thanks to the members of Group 4 (Mafia Hands) for their hard work and dedication towards this project. A detailed list of their contributions can be found here.

Project Status

The original developers of this project have now concluded their involvement. Team 3 will be continuing the development process going forward. For a list of suggested additions to this app, take a look at the Future Works page on our Wiki.

Code of Conduct

Please ensure all code of conduct is followed.

License

Licensed under the Apache License 2.0 license

About

An online multiplayer take on the classic party game Mafia

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Mafia 💎🖐

This is an online multiplayer take on the classic party game Mafia. The game splits players into civilians and mafia members. The goal of the game is simple, kill the opposing team. The full ruleset can be found here. However, since this is an OSS project, developers are free to edit rules and add new functionality as they please.

Please review the documentation for guidelines and information about the software.

Installation

Before you install and get started with this project, please ensure that you have installed nodejs and npm on your computer.

This project uses the package manager npm to install all dependencies.

First, clone the repository and open the project directory:

git clone git@github.com:Mafia-Hands/Mafia.git
cd Mafia

To run this application locally, the frontend and backend must run together. You can do it like so:

Frontend:

cd frontend
npm install
npm start

Backend:

cd backend
npm install
npm start

Note: You do not need to run npm install everytime. Only when a new package is added.

Note: Ensure that the socket.js file (frontend > src > socket.js) points to your local server by uncommenting the necessary line.

Usage

For development purposes, you can run the application locally by following the Installation Instructions.

If you would like to play the game, follow our guide on how to Get Started. If you don't know how to play Mafia, you can also read the Rules of the game!

Support

If you encounter any issues regarding this project, please create a Github Issue using the relevant template. You can also tag a specific contributor if you feel like they might be able to help you out.

Roadmap

Outstanding issues and requests can be tracked and visualised on our Github Projects page.

Backend

Frontend

DevOps

Documentation

Contributing

If you would like to contribute to this project, please make sure to follow our Contributing Guidelines.

Authors and acknowledgement

This project was coordinated by and for the University of Auckland course SOFTENG 701.

Thanks to:

  • University of Auckland - for providing the opportunity to work on and create this project
  • Dr Kelly Blincoe - for assistance with the development of this project

Also, special thanks to the members of Group 4 (Mafia Hands) for their hard work and dedication towards this project. A detailed list of their contributions can be found here.

Project Status

The original developers of this project have now concluded their involvement. Team 3 will be continuing the development process going forward. For a list of suggested additions to this app, take a look at the Future Works page on our Wiki.

Code of Conduct

Please ensure all code of conduct is followed.

License

Licensed under the Apache License 2.0 license

About

An online multiplayer take on the classic party game Mafia

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Mafia 💎🖐

This is an online multiplayer take on the classic party game Mafia. The game splits players into civilians and mafia members. The goal of the game is simple, kill the opposing team. The full ruleset can be found here. However, since this is an OSS project, developers are free to edit rules and add new functionality as they please.

Please review the documentation for guidelines and information about the software.

Installation

Before you install and get started with this project, please ensure that you have installed nodejs and npm on your computer.

This project uses the package manager npm to install all dependencies.

First, clone the repository and open the project directory:

git clone git@github.com:Mafia-Hands/Mafia.git
cd Mafia

To run this application locally, the frontend and backend must run together. You can do it like so:

Frontend:

cd frontend
npm install
npm start

Backend:

cd backend
npm install
npm start

Note: You do not need to run npm install everytime. Only when a new package is added.

Note: Ensure that the socket.js file (frontend > src > socket.js) points to your local server by uncommenting the necessary line.

Usage

For development purposes, you can run the application locally by following the Installation Instructions.

If you would like to play the game, follow our guide on how to Get Started. If you don't know how to play Mafia, you can also read the Rules of the game!

Support

If you encounter any issues regarding this project, please create a Github Issue using the relevant template. You can also tag a specific contributor if you feel like they might be able to help you out.

Roadmap

Outstanding issues and requests can be tracked and visualised on our Github Projects page.

Backend

Frontend

DevOps

Documentation

Contributing

If you would like to contribute to this project, please make sure to follow our Contributing Guidelines.

Authors and acknowledgement

This project was coordinated by and for the University of Auckland course SOFTENG 701.

Thanks to:

  • University of Auckland - for providing the opportunity to work on and create this project
  • Dr Kelly Blincoe - for assistance with the development of this project

Also, special thanks to the members of Group 4 (Mafia Hands) for their hard work and dedication towards this project. A detailed list of their contributions can be found here.

Project Status

The original developers of this project have now concluded their involvement. Team 3 will be continuing the development process going forward. For a list of suggested additions to this app, take a look at the Future Works page on our Wiki.

Code of Conduct

Please ensure all code of conduct is followed.

License

Licensed under the Apache License 2.0 license

About

An online multiplayer take on the classic party game Mafia

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Mafia 💎🖐

This is an online multiplayer take on the classic party game Mafia. The game splits players into civilians and mafia members. The goal of the game is simple, kill the opposing team. The full ruleset can be found here. However, since this is an OSS project, developers are free to edit rules and add new functionality as they please.

Please review the documentation for guidelines and information about the software.

Installation

Before you install and get started with this project, please ensure that you have installed nodejs and npm on your computer.

This project uses the package manager npm to install all dependencies.

First, clone the repository and open the project directory:

git clone git@github.com:Mafia-Hands/Mafia.git
cd Mafia

To run this application locally, the frontend and backend must run together. You can do it like so:

Frontend:

cd frontend
npm install
npm start

Backend:

cd backend
npm install
npm start

Note: You do not need to run npm install everytime. Only when a new package is added.

Note: Ensure that the socket.js file (frontend > src > socket.js) points to your local server by uncommenting the necessary line.

Usage

For development purposes, you can run the application locally by following the Installation Instructions.

If you would like to play the game, follow our guide on how to Get Started. If you don't know how to play Mafia, you can also read the Rules of the game!

Support

If you encounter any issues regarding this project, please create a Github Issue using the relevant template. You can also tag a specific contributor if you feel like they might be able to help you out.

Roadmap

Outstanding issues and requests can be tracked and visualised on our Github Projects page.

Backend

Frontend

DevOps

Documentation

Contributing

If you would like to contribute to this project, please make sure to follow our Contributing Guidelines.

Authors and acknowledgement

This project was coordinated by and for the University of Auckland course SOFTENG 701.

Thanks to:

  • University of Auckland - for providing the opportunity to work on and create this project
  • Dr Kelly Blincoe - for assistance with the development of this project

Also, special thanks to the members of Group 4 (Mafia Hands) for their hard work and dedication towards this project. A detailed list of their contributions can be found here.

Project Status

The original developers of this project have now concluded their involvement. Team 3 will be continuing the development process going forward. For a list of suggested additions to this app, take a look at the Future Works page on our Wiki.

Code of Conduct

Please ensure all code of conduct is followed.

License

Licensed under the Apache License 2.0 license

About

An online multiplayer take on the classic party game Mafia

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Mafia 💎🖐

This is an online multiplayer take on the classic party game Mafia. The game splits players into civilians and mafia members. The goal of the game is simple, kill the opposing team. The full ruleset can be found here. However, since this is an OSS project, developers are free to edit rules and add new functionality as they please.

Please review the documentation for guidelines and information about the software.

Installation

Before you install and get started with this project, please ensure that you have installed nodejs and npm on your computer.

This project uses the package manager npm to install all dependencies.

First, clone the repository and open the project directory:

git clone git@github.com:Mafia-Hands/Mafia.git
cd Mafia

To run this application locally, the frontend and backend must run together. You can do it like so:

Frontend:

cd frontend
npm install
npm start

Backend:

cd backend
npm install
npm start

Note: You do not need to run npm install everytime. Only when a new package is added.

Note: Ensure that the socket.js file (frontend > src > socket.js) points to your local server by uncommenting the necessary line.

Usage

For development purposes, you can run the application locally by following the Installation Instructions.

If you would like to play the game, follow our guide on how to Get Started. If you don't know how to play Mafia, you can also read the Rules of the game!

Support

If you encounter any issues regarding this project, please create a Github Issue using the relevant template. You can also tag a specific contributor if you feel like they might be able to help you out.

Roadmap

Outstanding issues and requests can be tracked and visualised on our Github Projects page.

Backend

Frontend

DevOps

Documentation

Contributing

If you would like to contribute to this project, please make sure to follow our Contributing Guidelines.

Authors and acknowledgement

This project was coordinated by and for the University of Auckland course SOFTENG 701.

Thanks to:

  • University of Auckland - for providing the opportunity to work on and create this project
  • Dr Kelly Blincoe - for assistance with the development of this project

Also, special thanks to the members of Group 4 (Mafia Hands) for their hard work and dedication towards this project. A detailed list of their contributions can be found here.

Project Status

The original developers of this project have now concluded their involvement. Team 3 will be continuing the development process going forward. For a list of suggested additions to this app, take a look at the Future Works page on our Wiki.

Code of Conduct

Please ensure all code of conduct is followed.

License

Licensed under the Apache License 2.0 license

About

An online multiplayer take on the classic party game Mafia

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages