Imagine a world where you can explore the myths and legends of every culture, collect mythical creatures, trade with others, and test your knowledge in thrilling community events—all while unlocking the secrets of the world’s most fascinating stories. That’s Mytherium, a web-based platform that combines the excitement of trading cards with the wonder of global mythology. Whether you’re a mythology enthusiast, a collector at heart, or just someone who loves learning about new cultures, Mytherium offers a unique and engaging experience that connects you to the legends of the past and the community of today.
Built an authentication system, did the lucky draw feature, developed rarity and power-up formulas using Wikipedia API, connected and managed the database and models, quiz creature selection, implemented the base.html and other frontend elements
Served as Scrum Master and created the quiz page, creating Quiz models, integrated the Trivia Quiz API to generate questions, a timer, scoring, and implemented five unique power-ups from the creature-selection screen.
Implemented the Wikipedia API, Creatures and User Creatures models, and backend functions for populating the database. Designed and implemented the HTML Pages for the Collections details pages. Worked on the MythMap page and formatting.
Implemented the marketplace so that trades (buy and sell) with other users could take place, implemented "myth map" using the OpenStreetMap and leaflet.js API for geospatial visualization.
Used Trello: for organizing our Scrum workflow, ensuring clarity and efficiency in task management. Our board was structured with lists for Sprints, To Do, In Progress, and Done, allowing us to visualize the progress of our work at a glance. Each task was represented as a card containing a detailed description, checklists to break down subtasks, and deadlines to maintain accountability. This structured approach helped us stay organized and prioritize tasks effectively throughout the project.
2 Sprints: At the beginning of each sprint, we collaboratively defined our objectives by assessing the prioritized backlog and assigning tasks based on workload distribution and expertise. This ensured that each team member had a clear understanding of their responsibilities and deliverables. Throughout the sprint, we continuously updated our Trello board to reflect progress, keeping the entire team informed and enabling us to adapt to any changes efficiently.
Daily Stand Ups: We tracked our progress through daily stand-up messages in the 'Team 1' Discord group chat created by out TA, Elias Lind. Each day, team members shared updates on what we did, in-progress tasks, and what needed to be done. This asynchronous approach kept everyone aligned, maintained accountability, and allowed us to identify and resolve issues efficiently, ensuring steady project momentum.
Communication: We relied primarily on Discord as our central platform for discussions, quick updates, and problem-solving. This streamlined collaboration and ensured that team members could easily reach out for support or clarification. Additionally, we leveraged pull requests to track code changes systematically. Before merging any updates, we conducted peer reviews. This process fostered collaboration, minimized errors, and improved the overall quality of our codebase
Paper prototyping: For Mytherium, our website, we used Figma to emulate the speed and simplicity of hand-drawn sketches by creating low-fidelity, wireframes—basic rectangles for navigation bars, placeholder text for content, and simple icons for interactive elements. Treating each artboard as a sheet of paper, we duplicated frames to explore alternative layouts, added prototype hotspots to simulate clicking through the homepage, product pages, and user dashboard, and collected margin-style feedback via inline comments. This approach let us quickly iterate on information hierarchy and user flow, surface usability issues early, and lay a solid foundation for Mytherium’s high-fidelity design phase.
A monolithic User class handling authentication, creature management, trades, and quiz participation would be hard to maintain, so we split responsibilities into separate apps.
accounts → Handles login, registration, password changes.
collection → Manages owned creatures, sorting, filtering.
marketplace → Handles marketplace logic, trade offers, notifications.
quiz→ Manages community quizzes, powerups, rewards.
and more...
Design patterns: Factory pattern, Observer Pattern, Singleton Pattern, Decorator Pattern
Factory pattern → Calls OpenStreetMap and leaftlet.js API to determine a user’s region.
Observer Pattern → Trade workflows publish events (Trade created, accepted, rejected) for multiple users
Singleton Pattern → The database connection pool is exposed as singleton. This ensures there’s only one shared instance throughout the app.
Decorator Pattern → We use temporary buffs to limit power-up usage.
Note: Below is our Figma Design draft. Not the actual website.
In progress...