This was my first project in web development that required a backend. My only previous web development experience was small sites with the usual HTML, CSS, and Javascript (e.g. this site) and a couple small experiments with a variety of web frameworks including Ruby on Rails, Flask, and React. I wanted to get acquainted with general web development concepts during this project, so I chose Django as my framework of choice since I'm most comfortable with Python. When I inevitably needed to consult a bunch of resources, the Django community luckily proved to be as rich as you would expect for a Python project.
I had messed around with Django a bit before starting this project, but I hadn't made a fully functional project yet. I was going to be using Django Channels in order to provide multiplayer support for my application, so to get familiar with the module I began by following a tutorial by Coding for Entrepreneurs. Following that tutorial gave me a good jumping off point where I could begin implementing the features I would need to make a functional Boggle game.
One of the issues that came up when I was working on this project was what dictionary I should use to check the validity of submitted words. After searching online for various word lists and not feeling confident on many of them, I decided to scrape the Merriam Scrabble dictionary (detailed here).
A more significant issue I ran into was a general misunderstanding of how Django Channels processes messages and transfers information from client to server and vice versa. I think this was mainly a result of following a video tutorial and expecting to understand the whole module from a single hour long video. I had to strip down the code I had written and mess around with Channels for a while to understand how messages were being processed, but doing so gave me an understanding that allowed me to actually make progress with the application. I'm still learning a lot each time I reopen the project files and begin adding more code. I don't like writing shoddy code, but I also recognize that actually writing code is important to realize what improvements need to and can be made.
I'm still working on this project, and it looks pretty bland at the moment since I'm still on the "make it work" aspect of "make it work, make it pretty, make it fast." As of now, the logistics of a game are almost all in place, save for a few bugs and issues. I have tried to keep a rough idea of what still needs to be done using Trello board, though I haven't been the most diligent with it.
If you want to try out the (unfinished) game for yourself, head to this link, and the source code can be found here.