Creating the Text Adventure Game for Education has required the implementation of several technologies coming from four people; all attacking different aspects of the website. In the past, I’ve created websites by myself relying entirely on my own knowledge and ability to gather new information. This means my biggest hurdle is learning new technologies to accomplish what the website will require. In the case of a larger project like this, there can be some discrepancy in what is required versus what is most ideal or effective.
My assigned portion has been the story management page(s) for use by the instructor when creating a new story (also known as a lesson or game). This requires a lot of interaction with the database and frontend to produce something functional and usable. My favorite technology during development so far has been Mongoose. It makes creating a schema for the module and implementation for the controller very straight forward when trying to populate a page. On the other hand, while I’m familiar with React, I’m not familiar with Bootstrap which is our current preference for formatting the frontend.
That segues nicely into the fact that I’ve had some difficulty understanding exactly how bootstrap works. Most of what I’ve done uses routers via React Router Dom and simple flexboxes. Bootstrap is an entirely different animal (to me) but I’m sure once I gain a deeper understanding of how it works, I’ll enjoy it just the same. As it stands, there does seem to be a lot you can do with Bootstrap with cleaner code than I’m used to. That means I don’t see a reason to change our usage of that technology even if it is challenging.
If I were to restart this project and be solely responsible for its creation I would of course be very overwhelmed initially. As a result, I would use a more simplistic frontend implementation using the aforementioned React Router Dom and Flexbox to get something operational and appealing. From there, I would continue to perfect the user interface until I reached a wall that required new technologies I’m less familiar with.
Matters of unfamiliar aside, I’m quite happy with our current technologies and can’t say I would change any of them. Working with React, Mongoose, Express, and CORS has been refreshing when compared to the forced use of other technologies and languages for other projects.
Mongoose works to assist in the process of connecting pages to the MongoDB database. Connections are established simply by using access credentials modified personally within the MongoDB project and once connected, that portion of the database is opened for use and given a variable. The model portion is used to create a schema that follows almost exactly how the dabase itself is organized. In this case, that allows me to find all games, create a game, find a game using the ID (or, more ideally, by clicking on it), edit games, and delete games.
Functions from the model are exported to the controller where they are used with express. A defined port number or server are created where model functions can be implemented for posts, gets, puts, and deletes. Personally, I find this communication extremely simple for use with a basic user interface. Little is required to confirm communication exists and usability can be cleaned up from there.
Leave a Reply