The Professionals

Automatrix Demo Video | Northcoders Project Presentations

Automatrix Demo Video | Northcoders Project Presentations

Multiply or die.

Automatrix is a user-friendly implementation of John Conway's Game of Life. Our application performs recursive geometric computations to update a game board according to a user's input.

The Team

  • Team member imagePreview: Team member image

    Ahsan Butt

  • Team member imagePreview: Team member image

    Hassan Alhaji

  • Team member imagePreview: Team member image

    Samuel Petcher


Technologies section imagePreview: Technologies section image

We Used: React, Three.js, Python, Django and Django Rest Framework, MongoDB, Redux, Firebase authentication, React Bootstrap.

We used React because it provides an ideal environment in which to manage and update various UI components with ease. We used Redux in conjunction with React as a way to centralise game logic and state. We used Django to create our API as it enabled us to accelerate the development process which was aided by its re-usability and pluggability of components. This provided the perfect opportunity to get to grips with the Python language which we greatly enjoyed. For our data-storage needs, we used MongoDB as the database for our API. We found this service to be very user-friendly, fast and easily accessible. Moreover, it has excellent integration with the Django framework, allowing for rapid API development. For our 3D rendering needs, we used Three.js in conjunction with a family of React-specific libraries that allowed us to implement our canvas in an imperative manner. Overall, we were very happy with our choice of tech which we were able to seamlessly spike, learn and implement with no prior knowledge in most cases.

Challenges Faced

We faced a few challenges when it came to using some of Django's features. None of these were insurmountable but we found Django to be more complex and extensive in comparison with Express. This turned out very well in the end because we gained a great deal of knowledge about this framework and were able to develop our API fairly rapidly while also enhancing our problem-solving skills. We also faced a challenge when it initially came to integrating Redux functionality into our app. We realised that we required a more comprehensive state-management solution, but we faced some hurdles when it came to refactoring and centralising our game logic and state. We relied on strategic pair programming and consultation of documentation to overcome these obstacles.