You know this saying – third times the charm? I really hope it’ll be the case this time, because it’s the third time Maciej Aniserowisz is organizing Daj się Poznać/Get Noticed contest. It’s 2017 and I’m out of excuses. Let me talk about my…
Project – TeamScreen
Dev teams (but not only them) often have on their part of open space tv screen that shows list and statuses of builds from Jenkins, TeamCity or similar build systems. Sometimes you can also see tasks from JIRA. Mostly they’re just displaying pages from tool which doesn’t look good on big tv screen. Less often someone creates some custom application for it during his/her spare time.
Of course you have various dashboards tools – for example here you can find quite a nice cross-section of what’s available. These tools are more general though, I wanted to create something for specific dev team needs. I spend some time looking for such thing but didn’t find it.
I want this tool when it’s ready to give additional insight in teams work for team itself (and probably outside people passing by through open space too :)).
TeamScreen will be a website, my intention for it is that it’ll be best fitted for the tv screen, but also by taking advantage of responsive design my plan for it is to look good on different web browsers and even mobile phones.
As a longtime declared .NET developer it’s pretty obvious that for a website I’ll choose something which name starts with ASP.NET. I haven’t had chance to play with new ASP.NET Core so this is my choice for web framework. As a main language I choose C#. I know that most of texts on this pages are written using F#, but C# is more popular, so I hope more people will to able to track progress in project. Also I want to try functional approach in C#, especially that C# 7 has a lot more to offer here than previous installments. We see how it goes 🙂
For data – one of my goals for this project is to be cross-platform and to have low maintenance cost and taking into account there won’t much data to store – I choose sqlite local db. That way you won’t have to invest in additional database or even install it.
I’ve chosen ASP.NET Core for the www part, so it’s pretty natural I’ll choose Entity Framework Core for the ORM part. This is also a technology I’m not familiar with, so it’s additional plus for me for learning something new.
Cross-platform and easy of installation
One of the most important features for me when it’s comes to new .NET Core is ability to create cross-platform solutions. I think it’s really great that we can now install created by us software not only on Windows, but on additional systems also. I’d like to take this into account if time allows and perhaps try to use Docker to create easy to install solution that fits all os’es. I’m not familiar at all with Docker, so at a moment I’m not sure if it’ll be possible. If not I still want to allow user quick and easy install, because I know how much time you can spend on installation and configuration. I have some ideas here, but right know it’s low priority.
Plugins and update systems
These are far-fetching goals, but I’d like to create plugin system where – one integration = one plugin – so you can adapt TeamScreen to your needs and easily install/unnistall additional integrations from web. Also create ones by yourself.
Great addition I believe would be also to have some sort of update system to check for new versions of plugins and TeamScreen application itself on the web and install them by one click.
As I mentioned before these are far-fetching goals with low priority at the moment. For the start I want to create basic application that just works.
- Cooperation with various tools used by developers
- Insightful view on team work
- Familarization with with .NET Core framework
- Checking if functional C# have any sense at all
Nice to have:
- Easy to install and configure
- Plugin system
- Update system for TeamScreen and plugins
- Additional integrations
For now – grab a link to (for a time empty) github repo and I hope to see you next time 🙂