Welcome to AACX, a playful exploration of various technologies and concepts through a simple yet engaging video game.
AACX delves into the following technologies and concepts:
- Django channels
- HTMX
- Rest (As roy fielding defined)
- View Transitions.
Let's get started with setting up and running the application.
-
Requirements: Ensure you have the following dependencies installed:
- docker
-
Start the project:
-
Open a terminal in the root directory of your project.
-
Execute the following command to initiate the project setup:
docker compose up
-
-
Populate the Database: The database is automatically created and populated with necessary data.
To embark on your gaming journey, simply open your browser and navigate to http://localhost:8000/home. If it's your first time, you might need to create a user account.
Explore existing parties or create your own.
Personalize your party by giving it a unique name or adjusting its settings to your liking.
Upon successful creation, a confirmation message will appear
Simply click on a party to join. Depending on the settings, you may need to wait for other players to join before starting.
However you may have to wait until all players joins the party(you can change the minium number of players when creating the party)
Once the party begins, your task is to provide answers for each round, starting with the designated letter. Track your progress, view other players' scores, and their answers too.
Incorrect answers will be highlighted for your attention.
When a round ends, either due to timeout or player intervention, all answers will be revealed, and scores updated.
In developing AACX, several key decisions were made:
- Utilization of Django: Leveraging Django's MVC architecture and template system for maximal synergy with HTMX.
- Integration of Django Channels: Exploring real-time operations via websockets in Python, diverging from the conventional Node.js or Golang implementations.
- Adoption of HTMX: Experimenting with HTMX to create richly interactive pages with minimal JavaScript.
- Incorporation of View Transitions: Embracing Google Chrome's new view transitions as a potential future standard for web pages, acknowledging the evolving landscape of web technologies.
- While testing is typically a vital aspect of software development, it was approached differently in this project. Despite acknowledging its importance and usually prioritizing testing before code implementation, the nature of this project involved numerous new technologies and uncertain decisions. Therefore, testing was not conducted in the traditional sense. Instead, the development process was more of an experimental trial-and-error endeavor. Each decision was made cautiously, with constant exploration and adaptation to the evolving landscape of technologies.