An online shop where you can order instruments for your hobby, and/or professional use.
I chose this project because I wanted to learn how to put together a web shop. I'm a freelancer and have never built a webshop before, so this can certainly come in handy in the future.
I buy enough instruments from online shops because I play music myself in three different bands.
Even though I know several frameworks by name, I'm still going to research which one is the best fit. Here I found a short blog on the most/best used JavaScript frameworks.
For the backend, there are a few options I already know - .NET with Entity Framework, a REST API with C#.
Furthermore, I'm still looking at other languages/frameworks that I can learn some new stuff from to build an API with. For example Java.
For the database part I’m most likely going to use SQL. I’ve had plenty of experience with SQL and to me it seems best fit to this project. Since the database has to be up at the time and we have a free MS SQL server from Fontys, that’s what I’m going to use.
From canvas the most likely things to use is Gitlab CI/CD and Docker. I’ve also heard about Kubernetes. Looking forward to researching those.
I am going to realize the full-stack web application in the next semester with the knowledge I gain during the process. The intention is to start using a front-end JavaScript framework to meet this learning goal. Also, the user must be able to navigate the application properly. It should be clear what the next step (can) be.
You use software tooling and methodology that continuously monitors and improve the software quality during software development.
To meet this learning goal, the application must meet certain security requirements. I want to demonstrate these through unit testing. Also, the code must look good and maintainable so that it can be worked on by someone else in the future.
You choose and implement the most suitable agile software development method for your software project.
I am going to try to apply the Agile method while working on this project. So far I don't fully understand the method, so I'm spending the first 1 or 2 weeks researching exactly how this method works.
You design and implement a (semi)automated software release process that matches the needs of the project context.
To have the difference between development and production I like to learn the things like Docker, Gitlab CI/CD and/or Kubernetes. This is used by almost every software company so I am looking forward to learning this.
You recognize and take into account cultural differences between project stakeholders and ethical aspects in software development.
I am going to achieve this learning goal with my protask group. The difference in technical knowledge between us as developers and the stakeholder as the client, who probably doesn't understand a lot of programming terms etc, needs to be taken into account.
You analyse (non-functional) requirements, elaborate (architectural) designs and validate them using multiple types of test techniques.
By showing the stakeholder the progress of the project during the sprints, we and our protask group can incorporate his/her feedback to then implement into the project. And in doing so, we will apply our professional knowledge to and advise the stakeholder whether or not it is a wise choice to implement such a feature.
through research on certain frameworks and languages, we can set up an idea that is going to work best for the stakeholder. In doing so, we can plan between each sprint when we can release an alpha or beta version so that the stakeholder can review it and provide feedback.
This one is almost the same as point 5. (You recognize and take into account cultural differences between project stakeholders and ethical aspects in software development.)
For the first two weeks, I will primarily be researching which frameworks are the best fit for the project. This applies to both the front-end framework and the backend framework. I am also going to find out which database I can best use for this. I already know that I will use a REST API between the front- and backend.
Also, all these services need to be separate and can be deployed using Docker and Kubernetes.
The code itself will be versioned and maintained in Fontys' Gitlab.
Once all the puzzle pieces are together (around week 3-4) I will start documenting the project. This includes the requirements, the project plan, functional and technical design. This also includes an (almost) complete planning with cards kept in, for example, Trello (scrum).
Also, a nice UI/UX sketch should emerge so that there is a clear idea of how the project will be put together. We also perform these steps with the project group.
Around week 5 a 6 I want to start possibly learning a new framework if I am not already familiar with it. Once I have a reasonable grasp of these framework(s), I want to start coding in week 6-7 and continue that until the end of the semester.