This week, the real work on the project has begun. Our GitHub Repository has been set up, and a .NET application has been created. The project has actually progressed extremely rapidly, and we already have laid the groundwork for an employer to register an account, login to their account, and create tests with a variety of different question types.
Although it has been difficult and weird working with .NET – with all of my previous web projects being written in Node.js, often using React for the frontend – it must be said that the framework definitely has a lot of convenience features that make it easy to get something up and running fairly quickly. For example, the Identity feature on ASP.NET Core vastly simplifies the creation and authentication of user accounts, with most of the work (including the saving of user account information in the database, and input form validation of the registration fields) being done automatically. The time-saving benefits from some of these convenience features simply cannot be overstated…
That being said, one thing that has been a massive time-consumer, has been attempting to get familiar with the Model-View-Controller (MVC) server-rendered UI that our project is using. Because I’ve invested so much time into learning and using React for my web development projects, I have extremely limited experience using a server-rendered UI scheme. Furthermore, ASP.NET’s MVC system is quite complex and difficult to comprehend for someone new to .NET development. If I could go back in time, I think I would have lobbied harder in our initial team discussions to use a SPA React application for our frontend, interacting with a .NET RESTful API backend.
Despite the fact that I’d be more in my comfort zone if we had elected to go with a SPA for the client-side UI, there is something to be said for learning to use new technologies. With graduation fast approaching, I will soon be on the hunt for my first real job as a software engineer. It’s entirely possible that gaining experience with .NET development will prove to be extremely beneficial for this, as it is a quite popular framework in the real world. Overall, I think that the experience and learning benefits for using this unfamiliar technology to create the project somewhat outweigh the attractiveness of working entirely within my comfort zone on yet another web application with a React frontend.
While a lot of progress has been made quickly on the project, a large amount of work remains to be done. This week, I’ll be working on getting the Login page, Test List Display page, and Test Creation pages to a more finalized state, and time-permitting, will begin to explore creating the pages necessary for a user to view a created test, and for their answers to be saved to our database. My enthusiasm remains high, and I’m excited to really get into the swing of things as work on the project ramps up. Until next time…