Graphinder – Project Introduction


Quick introduction

Ahoy!
My name is Michał and I’d like to welcome you to my half-zombie/half-hyperactive programming blog that covers mostly anything connected with Microsoft technologies. If you want to contact me or know anything more about me, please navigate to ‘About me’ section on your left. Thanks!
Going next to Daj Sie Poznac 2016, I’d like to elaborate a little about the topic of the project I’m going to develop throughout upcoming 3 months.
First of all I’d like to offer my deepest condolences to all of you who might find my written language boring and/or chaotic. I hope you’d get used to it quickly!
And.. as for the starters, let’s talk a little bit about what babble you’d be going through.
You’ll definitely see lots of graphs. And by lots I mean LOTS.
Origins of this project are not quite distant, as they belong to one of my school projects for artificial intelligence classes from recent semester. To be precise, it’ll try to leverage optimization algorithms operating on graphs and move them from boring command-line* space to some kick-ass web app with lots of front-end sugar and so on.
Let’s split the topic into few sections to add some readability to this TLDR.

* I’m joking ofc. I freakin’ love console apps.


Project organization

Starting with organization side…
I’m going to put a section just below the logo for quick navigation throughout the topics inside the project, in case you’re interested in jumping around on your lecture. This functionality will be available in every article so you’re welcome to give it a shot.
GitHub link for the project will also be provided below the logo, in case you want to go straight to the code.
As for the other tools and means of work organization, I’ve decided to go for good old Trello board for my current tasks, found bugs, backlog and icelog.

Trello for Graphinder:

https://trello.com/b/g6Rm8Cdm/graphinder

Why this topic?

I’ve decided to go for algorithmic project, because I’ve always struggled with anything revolving around them and throughout recent year or two I actually found myself enjoying writing and doodling in them.
However, please don’t be mistaken that those algorithms will be the most efficent and the most sophisticated ones because they won’t be. Hell, I’m even about to bring down Azure Service Fabric, provided I’ll have some time left for actual micro-service decomposition.
While quite boring from the surface, it should be fun for all of you to read some (I hope) interesting stuff I’m gonna share.
Basic implementation of Graphinder so far involves Minimum Vertex Cover problem and two algorithms, attempting to solve it, ie. Simulated Annealing and simple Genetic algorithm.

Current state of project

Currently I’ve finished two algorithms (Genetic and Simulated Annealing) along with Minimum Vertex Cover problem implementation. I’m currently thinking through some decoupling ideas for Genetic algorithm, that’s why only part of it is available in GitHub repository right now. Most of currently committed stuff is loosely covered with basic unit tests and more tests are coming soon. Actually, you’ll probably see at least one article about my struggle and thoughts that came up during unit testing so far (and probably more of it coming with growing amount of components).

Technologies

Ahhh… technologies!
Frameworks, libraries, APIs and services!
To be honest I almost gave up on this project trying to stop myself from doing I can do anything project to something more, more narrowed.
If you didn’t came up with description of my project on devstyle.pl so far, I’m about to write everything in C#, mostly ASP.NET MVC 5 (6?), SignalR (I have no idea what I’m doing), Entity Framework, xUnit (+ NSubstitute) for backend, and pure JS with AJAX or one of major JS frameworks for front-end along with D3.js for graphs visual representation.
If only time allows, I’ll also attempt to decompose application backend into smaller micro-services, mostly for solution-finding (high processor cost, needs to move elsewhere) and authentication/authorization in some sort of WebAPI (I guess?) implementations.
You’ll probably see some reactive programming around as I’ve got used to it working for a quite time now in game development in Unity3D, so if you’re not really into webdev nor graphs, maybe that will catch your attention?

Logo

Have you seen this sexy, shiny, new logo for the project?
Which logo? What do you mean by ‘which logo’?
Hey, don’t go away, hey wha-…
Alright, just joking. Hope you like it as I thought of coming with something for the challenge anyway.
Either way, let me know what do you think ’bout the project!

Wow, 66 revisions of this post so far. When did it happen anyway…

One thought on “Graphinder – Project Introduction”

Leave a Reply

Your email address will not be published. Required fields are marked *