An Introduction to Project REDHEAD
Written by Robin M., @rawbean.
For a brief intro about our group, please check out our frontpage.
From Scratch to Redhead
As we already developed a project for our web-engineering classes (“project Redhead”) which already has lots of features, we would like to clarify that none of the code will be reused again. We want to build a completely new and stand-alone tool from scratch.
Well, we have to admit it’s not from scratch as we already have the mental and conceptional work done for this project, or at least for the build we already deployed. But we want to improve older features, enhance visuals and UI related fields while incorporating new – and for us mostly unexperienced – technologies. We want to bring new features and better communication between all users and developers for version 2.0.
We also want to divide this blog post into two categories so we can handle our thoughts and standings more precisely. On the one hand, we’d like to discuss the technology and coding behind it, where we want to bring you technical details and standings about the project, and on the other we’d like to talk about the conceptional part, where we want to enlighten our plans, decisions, wishes and much more to you.
From Redhead to Class-Board 2.0
First things first, we want to bring you the goals and ideas from Redhead and what we plan for the newly revised project first. Redhead was the end-result of the web engineering project from last semester. It was developed with technologies like JSP, jQuery, and JavaBeans. Well, definitely not modern technologies nowadays. As we worked on the project, we already wanted to provide a new version with more modern and fancier technology. We guess it’s time to go for it.
The project is meant to simplify and enhance our daily being at DHBW. It’s supposed to provide information which can be used every day, like meal plans, train schedules, course time tables and also provide some mini-games in case we’re bored during lectures. One of the mini-games features a betting game that allows all users to place bets and vote for it with virtual currency. Our primary goal is to create a centralized platform for all students with all relevant information. For now, we were able to provide this project to the B4 class, but we’d be happy to deploy it for all other groups if interested.
Also due to the technologies we’ve used for v1, we weren’t able to provide all the features in the way it was originally intended. This will be priority number 1. We’ll give you more detail about the technologies now being used below. Scroll down if you are interested.
Also, if you have some ideas, feedback, and wishes for this page, please make sure to let us know. We’re always open to new ideas and feedback.
Cheers, -RM-
Revisiting our Development
Written by Gino, @ginomessmer.
So let’s talk about tech. As Robin already mentioned before, we were required to work with obsolete technologies like JSP and jQuery for our web-engineering project. This time we’d like to take the opportunity to work with rather modern frameworks.
One of the biggest issues was that we were required to work on an MVC principle. There’s definitely nothing wrong about it, but it was pretty difficult to spread all the workload across seven people in our group without potentially messing up the whole source code especially while working with obsolete frameworks like JSP. To prevent anything like this, we’d like to develop front-end and back-end individually and connect them with ease at any given time.
For the front-end side of things, we would like to either use React or Angular. Both are modern Single Page Application (SPA) frameworks. React specifically is a declarative framework brought to you by Facebook. It’s being used for many popular sites and applications like Facebook, Discord, Netflix and many more.
SPA frameworks already feature all the boilerplate code we need. We can focus on our business logic with ease.
For the back-end side of things, we are going to use ASP.NET Core. It’s built on top of .NET Core which is being maintained by Microsoft and is used for their applications plus many other enterprise applications.
ASP.NET Core features everything you can ever desire. From HTTP controllers, ERM, WebSockets, background services, authentication, Dependency Injection over to official support for Docker.
Apart from the actual development, we’re also going to incorporate common DevOps practices. This includes Continous Integration & Continous Delivery, release pipelines, Docker and cloud-hosted environments for dev and production. Azure DevOps suits us best for these tasks and from a personal stance, I can recommend it to anyone who is looking to enhance their DevOps experience. Make sure to follow our DevOps project in the coming weeks ahead for insights.
Some quick links at a glance:
Guess that’s all for now. We’ll go into further technical details as part of our next post. If you have any comments, questions or ideas, please feel free to let us know and we’d be happy to listen to your input.
Cheers, -GM-.
5 replies on “Our Vision”
Hey guys,
first of all, i really like the idea you bring into this project phase. The technologies you suggest using seem appropriate.
I especially like that you plan on using DevOps practices, i think this will come in handy as the project grows.
Looking forward to future updates.
Cheers,
Lukas@KeyCloudTeam
Thanks for your input, glad you’re liking it.
Hello everyone,
I don’t think I have to add anything here. All necessary items have been mentioned with enough information provided. I guess we can agree that stuff might work out better using modern frameworks. 😉
Just out of curiosity, what makes you pick React over Angular or vice versa?
I’ll be looking forward to future content!
Cheers,
Kevin
– Team GameBase
Something that I forgot to ask: If you use databases, which one will you use?
Cheers!
Hi Kevin,
thanks for your comment, happy to answer both questions:
We haven’t fully determined which web framework to use yet. It’ll depend on what we are going to use for Web Engineering II if any of them. Both frameworks are great and probably have their advantages and disadvantages. Angular has a lot of business features built-in, like dependency injection, HTTP client, and many more, though it can be really overwhelming to begin with. React is mostly dedicated to the UI itself and more flexible when it comes down to business logic. It’s way less opinionated than Angular. In the end, it’s personal preference. I’d probably stick to React for flexibility, but I worked with either one before and I can recommend trying both at least once to anyone.
As for the database, it depends on whether we’re going to store documents or relational data, but also whether or not your data model changes a lot. MongoDB serves great for documents and for frequent data model changes. For the latter, I’d probably use MSSQL powered by Entity Framework.
Hope that answers both.
Cheers,
Gino