Skip to content

SorenErvik/MathWars

 
 

Repository files navigation

Install

npm install


Things to add

  • Create a .env file in config folder and add the following as key = value
    • PORT = 2121 (can be any port example: 3000)
    • DB_STRING = your database URI
    • CLOUD_NAME = your cloudinary cloud name
    • API_KEY = your cloudinary api key
    • API_SECRET = your cloudinary api secret

Run

npm start

MathWars

MathWars is an exciting and interactive web application designed specifically for elementary school students to enhance their math skills through play. With a colorful and engaging interface, MathWars offers a variety of entertaining math challenges that make learning enjoyable. Students can compete with friends, track their progress, and explore different math topics in a playful and educational environment. Make math practice a thrilling adventure with MathWars – where learning meets fun for elementary learners!

Link to project: https://mathwars-a069d8c7d704.herokuapp.com/

MathWars Gif

How It's Made:

Tech used: HTML, CSS, JavaScript, Node.js, Express, MongoDB, EJS, Passport.js

Frontend

The frontend of MathWars is built using modern web technologies to deliver a seamless and visually appealing user experience. Key frontend technologies include:

HTML5: Providing the structure for the web pages. CSS3: Styling the application and ensuring a responsive design for various screen sizes. JavaScript (ES6+): Implementing the interactive features and game logic.

Backend

MathWars leverages a backend server to handle user authentication, store high scores, and manage game data. The backend is powered by:

Node.js: Executing server-side JavaScript code. Express.js: A lightweight web application framework for Node.js, simplifying the creation of robust APIs. MongoDB: A NoSQL database for storing user information, high scores, and other relevant data. Mongoose: An Object Data Modeling (ODM) library for MongoDB and Node.js, facilitating interaction with the database.

Game Logic

The core game logic is implemented in JavaScript, making extensive use of asynchronous programming to handle user input, generate math problems, and update the game state in real-time. The game engine ensures a dynamic and responsive experience for players.

Current Optimizations & Updates:

MathWars is continuously evolving to provide an optimized and enjoyable experience for players. Here are some recent optimizations and updates:

Performance Improvements

I've implemented various performance optimizations to enhance the overall responsiveness and speed of the MathWars game. These optimizations include:

Code Refactoring: Streamlining and improving code efficiency to reduce load times and enhance gameplay responsiveness.

User Interface Enhancements

MathWars has undergone updates to its user interface, aiming to provide a more intuitive and visually appealing experience. Notable UI enhancements include:

Responsive Design: Ensuring that MathWars adapts seamlessly to different screen sizes, making the game accessible on various devices. Visual Feedback: Incorporating enhanced visual feedback for correct and incorrect answers to provide a more engaging gaming experience.

Bug Fixes

As part of my commitment to delivering a bug-free experience, I have addressed various reported issues and fixed bugs to ensure a smooth and error-free gameplay environment.

Future Features

Highscore Leaderboard

One of the exciting features in the pipeline is the introduction of a highscore leaderboard. Players will be able to see how their scores compare to others, fostering healthy competition and encouraging players to strive for the top spot.

Multiplayer Sessions

I'm working on incorporating multiplayer sessions, allowing entire classes or groups to join and compete against each other in real-time. This feature will enable collaborative learning and friendly competition within a classroom setting.

Lessons Learned:

The development of MathWars has been an insightful journey, bringing forth valuable lessons and experiences. Here are some key takeaways:

User Feedback is Invaluable

Throughout the development process, user feedback has played a pivotal role in shaping MathWars. Listening to the community, understanding their needs, and addressing concerns has been crucial for creating a game that resonates with its audience. Regularly seeking and incorporating user feedback has proven to be an effective strategy for continuous improvement.

Iterative Development is Key

MathWars started as a basic concept and evolved through iterative development. Embracing an iterative approach allowed us to release a minimum viable product (MVP) quickly, gather user feedback, and make informed decisions about subsequent features and enhancements. This flexibility has been instrumental in adapting to changing requirements and ensuring a responsive development process.

Performance Optimization is Ongoing

Ensuring optimal performance is an ongoing process. While initial optimizations have been implemented, the dynamic nature of web development demands continuous efforts to enhance speed and responsiveness. Regular code reviews, profiling, and optimization strategies contribute to creating a smooth and efficient gaming experience.

Collaboration Enhances Creativity

MathWars has benefited greatly from collaborative efforts. The diverse skills and perspectives of the development team have sparked creativity and innovation. Encouraging open communication, sharing ideas, and leveraging the strengths of each team member have been instrumental in overcoming challenges and achieving project milestones.

Planning for Scalability

The envisioned future features, such as the highscore leaderboard and multiplayer sessions, have underscored the importance of planning for scalability from the outset. Anticipating potential growth and designing the architecture to accommodate increased user engagement are essential considerations for the long-term success of MathWars.

Embracing Challenges as Learning Opportunities

Challenges and setbacks are inherent in any development project. Each challenge faced during the MathWars journey has been an opportunity to learn and grow. From debugging complex issues to refining user interfaces, overcoming challenges has contributed to a more resilient and adaptable development team.

As MathWars continues to evolve, these lessons learned will serve as a foundation for ongoing improvements and innovations. The journey doesn't end here; it's only the beginning!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 67.4%
  • EJS 29.1%
  • CSS 3.4%
  • Procfile 0.1%