The views expressed here does not necessarily reflect the opinion of findigl and/or its affiliates
Who built our website?
Our website was built by Info Rhino Limited. Both Info Rhino and findigl needed a facelift. Currently, Info Rhino manages findigl's technology platform.
If you are a startup - let Info Rhino build the same website for you
Info Rhino took the lead, created a vision, and decided common feature requirements
- If Info Rhino were to be able to maintain multiple websites for different clients, there would need to be one management portal - multitenant.
- Any startup should be able to approach Info Rhino and ask them to create a website like Info Rhino or findigl.
- The website shouldn't rely upon external identity providers to authenticate users. This has been a maintenance issue for Info Rhino previously, and most website development solution providers.
- The content should be available to social media platforms to improve SEO.
- The technology stack should be what Info Rhino understands - this meant we couldn't accept php, Ruby On Rails architecture - .Net only for us.
- Non-technical people should be able to maintain a blog or content in the future.
- The website should be capable of becoming much more modular, to keep the core website intact.
The big surprise about findigl's tech
One of the most important features was to ensure we had as much versatility within the platform as possible. We wanted to ensure we could adapt to client requirements, and market changes as rapidly as possible. It was deemed essential that the core part of our platform could deliver platforms across completely different verticals (business domains).
We eradicated past mistakes
and many others startups tends to make…
Whilst startups make many mistakes, one of the biggest mistakes is made when trying to focus on the core business. This will sound strange to most people.
All modern approaches towards software development is geared towards the user, we have UX specialists, Agile Mentors, Scrum Masters, User Experience Design Leads, Thought Leaders, AB Testers, Content Specialists, Front-end developers, Usability Testing, Unit Testing, Latency testing.
Making the user king seems like the best way. Keep asking users what they want and we will keep pivoting until the users gets everything they ever wanted.
Except, no two users are the same. Users are unpredictable, and whilst we can predict users individual behaviour, we can't assume because they say they will like some feature that they will pay for it.
The old joke, "What we lose per unit, we can make up for on volume"
Simple answer is, you can't.
Market research will tell a company that users will pay for a product or service, but when it comes to it, they won't. This is nothing bad about customers, just they are allowed to change their minds or decide to spend their money on something else. The only thing to force a person to honour something is a contract. The problem with contracts is both parties must honour their side, and most startups cannot promise anything much at all in the early days.
We decided to focus on core functionality first
Unashamedly, findigl focused on solving big problems which could be applied to multiple businesses. The focus was on things which caused us pain on other websites, applications, and in real life, try to solve those and move on. Market research or feature analysis will tell us many people would state they find our improvements worse, but that wasn't the intention.
An example of creating a core functionality for security
The challenges to existing secured access to websites
Security and websites is a never ending ordeal for users. Sometimes, we log into one website, use the same password on another, only to find they get hacked and we are then exposed on both websites. Other times, we use Facebook or Gmail to act as our identity provider, to then run the risk we could lose access to these accounts or providers get blocked. Good luck logging into Cambridge Analytica's website post Facebook scandal.
Then we have Two-Factor Authentication, or multi-factor authentication - your mobile, and email. How about biometric analysis before your eyes are chopped out for access to your email account?
We think blockchain, cryptocurrency based authentication will be the de-facto method of authentication with a combination of multi-factor will be the ultimate way to secure users.
Thinking in terms of protocols
We decided, that for findigl, we would build a protocol based mechanism into our platform. Multi-factor, is indeed, a set of authentication types, which are synonymous with protocols - Email, SMS. HTTPS, TCP/IP, 256 Bit Encryption, Biometric etc.
Being realistic about the user's need of protection
"Never before, has so much been risked for so little…"
findigl is a property platform. The goal is to make everybody's lives easier, giving them greater understanding of what they are selling and buying. Sellers can identify what makes their property unique, and buyers can try to find those homes matching their requirements. There is one big point though - why do need to know user's passwords?What personal data do we really need to retain? Machine Learning and website hardware analytics can tells us enough without having to capture every personal bit of information about a person.
Can't we work in probabilities?
We decided that our database wouldn't even store email addresses.
People want to buy and sell houses - how vital is it we know their personal data?
Let users take responsibility for their security
What seems obvious, is many users could simply buy a website domain - make it as obscure as possible and create users per website.
Cryptocurrency showed us how wallets could have multiple addresses, and that they could be temporary. Technology never gives us something new - it just presents something older in a new way. Old technology, based on solid principles is the best way to create something slightly different. Even the brilliance of Bitcoin is pretty much slight variations on older concepts.
We suddenly find that users can create their own domains, create their own email addresses, and register them to websites. Furthermore, findigl asks users for at least two email addresses.
Realise that security doesn't matter that much - What!
For many, if not most websites - you really don't need anything much more than the ability to be able to use a website with some form of memory of what you have done before. Often, there is little meaningful personal data worth retaining.
"What about payments? What about fraud?"
Everything is a question of perspective. When online fraud occurs, normally, it entails some form of use of person A's card for the benefit of person B. Person B has to collect the goods. Most crimes has a benefactor and this is why criminals get caught. This is not advice, but one way to reduce the risk of getting caught would be to steal 100s of people's credit cards in a block of flats, buy tens of thousands of products, and deliver them to each address and then burgle some of the flats.
Bizarre? Not really. The key point here is, unfortunately, people can be incriminated when being innocent, others will turn a blind eye, some will be lazy, and many will become real victims. When a website is hacked, it is hacked and as with our fake delivery crime - everybody is exposed whether they want it or not.
The goal of decent security is to stop tying people to events and actions. When these links exist, make them as inane and dull as possible so nobody cares.
We will employ fraud detection on findigl, but it will be pretty simple criteria.
Key technology in findigl's platform
Advanced C#, .Net Core Applications and libraries
We had to rise above standard Model View Controller standard fare websites. We couldn't just rely upon the same tired ETL infrastructure found inside many enterprises. For this reason, we built specific applications/microservices to focus on specific functionality. Here are some of the applications created;
- Automated CSV Loading.
- Automated XML Loading.
- File Content discovery and manipulation application.
- Regular Expressions Parsers.
- Web Search applications.
- Automated batch processing and execution.
- Advanced data retrieval and submission to SQL Server databases to reduce round trips.
- Emailing libraries to handle message templates.
- Security libraries to manage security tokens and authentication.
- Batch Automation and scheduling applications.
Adoption of Piranha CMS (Content Manage System) .Net Core as our website architecture
The first version of the findigl was built in .Net MVC4. It was never published online as it was for testing data and reports.
The second version of the findigl was built in .Net MVC5. This used Identity Framework with Twitter Authentication and standard forms login. The website had a mini content management system to help with adding different content to the site without redeploying the application.
It was when deciding on how the newest website was to be developed that it was felt to be essential to use a CMS. After quite a bit of research, and trial and error. The following decisions were made;
- The CMS should be in .Net Core.
- The CMS should be fairly easy to enhance, and add new fields and content to.
- There should be a way to add independent site security.
- The CMS should have a blogging capability - we have decided not to use their blogging after all, and are using our own Markdown approach.
- Most development within the CMS should be portable. If we had to move to a new CMS, a lot of the code could move easily.
Piranha CMS had to be customised quite a lot, but we now have high versatility to manage content in the website, and have our own customised forms and reporting plugins within the website. Key functionality within the website;
- Dynamic advanced report display.
- Maps and user interaction through Leaflet.js.
- Passwordless authentication.
- Reports will eventually be linked to dashboards with clickthrough for end users.
- Forms and certain data using Knockout.js for data binding.
- Caching of certain data object and information to improve site performance.
- Extensible content - we wanted the site to grow as we added new information without having to re-release the site.
Markdown Editing built in - our own, and simpler blog
Having a blog is a great way of telling a story about your activities. It could be a new product being launched, news about problems being encountered, a new hire or anything really. The challenge, we found with the blog embedded within Piranha, was that it had changed as the site has been upgraded. It just made it too tricky.
When all we want is a way to create content and add some pictures.
Markdown to the rescue
Almost everybody should have heard of HTML - Hypertext Markup Language. It is a way of presenting text, so that devices and screens can decide how to display content. One of the challenges with HTML is it can become a little too OTT for end users.
Markdown should be familiar to developers who use Github. It is a way to let users define formats, headings, pictures, links way simpler than HTML. Indeed, just as HTML has what are known as WISYIG editors, so too does Markdown.
To understand more about this, take a look at https://stackedit.io/app#
How have we incorporated Markdown into our website?
- We create a folder where markdown files are dropped.
- The names of the files becomes the subject heading.
- The website checks that folder for new files every six hours (configurable).
- A page displays a list of articles and content below in an accordion.
This won't be the long term approach, perhaps we need a page per article and some enhancements.
What does this mean?
People can independently create blog articles in markdown, without requiring any technical ability, drop it in a folder, and see that appear on the website later on. This empowers the site owners to worry less about the CMS technology.
Conclusion on findigl's technology by Info Rhino Limited
The most incredible thing, is it has been developed by just one person, in less than a year. There is still a lot of reporting to do, but what we have is a solid foundation capable of delivering efficient secure websites and data in an automated fashion.
If you have any questions, please contact email@example.com or firstname.lastname@example.org