Context
There are two things that can be acknowledged when going over the previous phase. They are goals and features. Now, it comes to the second phase, analysis. In this phase, the tech stack used for development should be determined. Before figuring out the tech stack, the components of this application should be recognized. Usually, a web application would have three parts, namely a front-end application, a back-end application, and a database. In this phase, the tech stack for these three components would become clear.
Front-End Application
Currently, many websites are developed with React, which is a JavaScript library for web development. It could be an ideal option for this project.
However, React does not have built-in tools, like routing and state management. It might make the learning curve steeper while doing development with React because developers have to integrate new libraries for some purposes and learn to use them. In addition, React does not provide a clear project structure that helps developers to organize their code. The flexibility of organization would be a barrier for beginners because it takes experience to make a good design in term of consistency.
Therefore, Angular is another good choice here. Angular provides clear project structure and built-in tools at the beginning. Beginners do not need to bother the stuff of libraries or project structure. They can follow the same structure to modularize their code and use the built-in tools to manage routing or application's states. It also helps beginners to make the components development consistent and shorten the development period by eliminating extra learning about third-party libraries.
Then, I would go for Angular for my website development.
Back-End Application
For back end development, there are several popular frameworks here, including Django, Flask, Spring Boot, ASP.NET Core, Laravel, and so on. Some are ubiquitously used in enterprise-scale application development.
In this case, the back end application would focus on providing services through API endpoints. Ease on maintenance and development would be prioritized. That means beginners can do least configurations and structural design to start their development. Therefore, I would choose ASP.NET Core for my development.
ASP.NET Core provide minimal APIs for rapid development. Beginners can write API endpoints without implementing controllers or complex configurations. Furthermore, ASP.NET Core has a clear project structure for traditional API implementation with controllers.
Overall, ASP.NET Core becomes a good choice in this case because of its simplicity and clarity.
Database
When it comes to data storage, there are two types of databases for consideration; they are relational databases and no-SQL databases. Relational database is mainly used for structured data which have relationships with each other whilst no-SQL database focus on handling unstructured data which might have dynamic schema.
For this project, relational database would fit the need because this project requires authentication for creators. The contents are related to their publishers, creating relationship with the data of users.
In addition to the relationship between data, the data type should be considered. Since the creators will write descriptions for their projects or work history, it is necessary to stored those formatted descriptions. Assumed the creators will write articles in Quill editor, the articles will be exported in JSON format. Hence, PostgreSQL is a good fit here because it supports storage for JSON.
Conclusion
At the end, the tech stack would include Angular, .NET Core, and PostgreSQL. Beginners can develop the system rapidly by following the built-in structure and doing fewer configurations while keeping the consistency across the project. Regarding the data storage, PostgreSQL makes it easier and more convenient.
Top comments (0)