As artificial intelligence became more and more popular, I felt I had to get on board. Not necessarily by creating my own model from scratch, but rather leveraging an existing, sophisticated AI.
Keeping this perspective, I started a project with a clear and simple objective: use AI to generate quiz questions. In other words create an AI-powered quiz app.
In this project, my primary focus wasn't about technical details. I actually wanted to start by making compelling visuals that would fit my requirements.
So, I began by making mockups on Figma and then quickly prototyping them, in order to have a straight vision of what I was going to develop.
I began the development process by crafting a basic TypeScript class designed to represent the quiz, including aspects such as its questions, answers, interactions etc.
The strategy was to develop my front-end application beginning with and centered on this particular class, rather than the other way around.
To ensure I was on the right path, I used Test-Driven Development (TDD), which has evolved into one of my most reliable tools over time.
I wanted to deliver something quickly, so I began developing my front-end application using Angular. I integrated one mockup after another and every piece of data was mocked in-memory.
I was able to gather feedback from my friends by involving them in the development process. This was crucial for me since I didn't want to begin back-end development until the entire front-end application was somewhat "validated."
After completing the first version of my front-end app, I began working on the back-end using NestJS. I knew there was going to be lots of different concepts and so I had to establish a clear boundary between them.
By applying SOLID principles, I made my code modular and clear, with each part having a single, focused role. Hexagonal architecture helped me separate the core functions from external elements.
These strategies made the development smoother (implementation, tests...) and improved the app's maintainability and growth potential.
I think it would have been a good idea to further explore the concept of hexagonal architecture on the front-end side.
AI-relatively speaking, using an AI API isn't that interesting. It's quite similar to making use of any other API. It enables the developer to incorporate artificial intelligence effortlessly. But the drawback is the absence of hands-on engagement with a personally trained AI model. And I think this is where all the fun is.
Of course I did have some fun developing this project and I can't wait to make new ones! ๐