Welcome to the technical repository for the Canadian Online Model United Nations (COMUN). COMUN is one of the first virtual and free Model United Nations, recognized with 2 x Special Mentions from the United Nations High Commissioner for Refugees (UNHCR) MUN Refugee Challenge. We have successfully hosted over 300 delegates from 37 countries worldwide.
📂 Awards: UNHCR awards can be found in the awards folder.
📂 Letters: COMUN-related letters are available in the COMUN letters folder.
- Python 3: The primary programming language used for developing the bots due to its simplicity and extensive libraries.
- Discord.py (v1.7.3): A Python library used for interacting with the Discord API. It provides an easy way to create bots that can communicate with users on Discord servers.
- Asyncio: Used for writing concurrent code with the async/await syntax. It is essential for handling multiple tasks, such as processing user commands and responding to them in real-time.
- Nest_asyncio: A small Python library that allows asyncio to be used in environments that have an already running asyncio event loop (like Jupyter notebooks).
- Time: A standard Python library for manipulating time-related tasks like setting timers, measuring execution time, and delaying actions.
- JavaScript: Used for adding interactivity to the website, including button transitions and dynamic content updates.
- CSS: Used for styling the website to create a visually appealing and responsive design.
- HTML: The backbone of the website, used for structuring the content and elements.
The bot code can be found in the bots folder. Below are examples of each bot in action:
Greets delegates when they enter the COMUN server.
Creates a poll for voting between three options: abstain, for, and against, and counts up the poll results.
Asks delegates their status (present or present and voting) and stores the delegate's choice.
Creates a countdown timer with the /time 60
command.
Assigns roles (committees delegates are in) via emojis after a specific command.
The website was designed with simplicity in mind using JavaScript, HTML, and CSS. It features interactive elements like button transitions and anchored social media buttons. The website's source code is located in the web folder.
- Clone the repository:
git clone https://github.com/ethanwongca/canadianonlinemun.git cd canadianonlinemun