Overview
Since there are many existing Idea Management Platforms already available out there, this research section will start by looking at the two platforms that our clients are currently using: IdeaDrop and Crowdicity. Due to the fact that this is a brand new project, we will have the liberty to select the different technologies we are going to use. We will discuss why we chose a python web framework and why Django ended being our final choice.
IdeaDrop vs Crowdicity, and What we can Learn From Them
Similarities
There are two highly related platforms that our clients UCL and NHS are eying at or are currently using: Crowdicity and IdeaDrop. These two platforms have their similarity and differences that we are going to analyse. Let’s list an overview of their similarities. Both allow a moderator to set challenges and users to submit ideas. A deadline can also be set for the challenges. In regards to idea management, both platforms share some features such as the ability to link multimedia resources including videos, links, attachments. Both platforms allow filtering and sorting. Filtering is done through the use of keywords or “hashtags” for the case of IdeaDrop. To increase collaboration, users will be able to write comments and tag other users. Both platforms come with mobile applications to increase accessibility. [1][2]
Differences
However, each of them have their own perks. In Crowdicity, the lifetime of a challenge will go through a pipeline with different stages designed by the moderator. Moderators will also set criterias to capture what they need from contributors. IdeaDrop, however, is more Idea focused. In resemblance, it has a similar pipeline for its ideas, where the ideas will go through different stages in a “kanban-style”. Stirring away from each other, Crowdicity provides data analytics services to its clients. There is a dashboard to view real-time data and the ability to incorporate Google Analytics. IdeaDrop, however, invested in a pattern recognition technology that checks for duplication of ideas. Both platforms allow users to be anonymous. Idea drop allows you to hide your identity when posting ideas while Crowdicity allows blind voting. IdeaDrop mimics a game like experience by giving each user a score that is based on their contribution. Moderators will be able to include rewards for their challenges. The user score system was not implemented in Crowdicity. In terms of evaluating ideas, Crowdicity provides multiple options to do so such as a point system, a voting system, a liking system and a star rating system. IdeaDrop, however, evaluates ideas based on a score. [1][2]
Insights
Each of them have their own touch to idea management, challenge management and collaboration practices. Features, such as the keyword filtering of ideas and challenges and the user score system, are deemed quite attractive to us. We therefore made improvements to our MOSCOW statement based on our research and decided to have these features as a must-have. Our team’s decision making process takes into consideration the valuable opinion of our clients: NHS and UCL. We are well aware that we needed to strike a balance between user experience and our own abilities as developers. Therefore, high-end features, such as data analytics and pattern recognition technology will have to be categorised as future development.
Related Technologies
Desktop Application vs Web Application vs Mobile Application
The possible solutions of implementing an idea management portal is to have a desktop application, a web application, a mobile application or all of the above. One of the main focuses of the project is to build a product with hgh accessibility. Desktop applications and mobile applications would provide better user experience as users would not need a browser to access the platform. However, deploying different forms of the platform will require more development time. In terms of accessibility, web applications can be accessed by anything with a browser: desktop and mobile device. On the other hand, mobile applications will only be accessible to mobile devices and need to be deployed in both the Apple App Store and the Google Store while desktop applications only work on PCs. By weighing the factors of development time, expertise and accessibility. Our team decided to go with a web application and categorise mobile and desktop applications as future development.
Programming Language
In regards to programming language, members of the team have ranked Python as their most well-versed language followed by Java and C. A group decision was made that we would dive deeper into server side frameworks that uses Python: Django and Flask. According to the Python Developers Survey 2020, these two frameworks are the most popular among other python frameworks that python developers use.[5]
Django vs Flask
Here, we are going to compare the two frameworks: Django and Flask. Django’s unique built-in admin package will allow developers to manage data with create, read, update, delete (CRUD) operations.[3] This feature is not found in Flask. Django comes with object-relational mapping (ORM) which links databases with classes in the python programming language. With the help of ORM, developers are not required to write queries in Django and opposite is for the case of Flask.
In terms of performance, it was found that the difference are negligible and both frameworks are suitable for scaling. [4] Django has built-in security protection to prevent cross site scripting, cross site request forgery and SQL injection. Flask can implement similar security measures with external libraries. [4] We can deduce the performance and security are not the factors that will differentiate these two frameworks.
Django has a huge number of built-in packages which allows the developer to build and run applications with less effort. Though the large number of packages, developers are restricted to only the packages provided by Django, Flask is known to be more flexible as any plugin or library can be used in Flask, [3] Django’s community is reported to be more responsive than Flask’s community, which means that developers will get support more easily. [3][4]
Insights
Our team has laid out the more prominent differences in these two frameworks and have decided that Django would be a more suitable choice for us. Apart from the fact that our clients strong encouraged us to use Django as their personal preferences, we ourselves loved the fact that Django is “batteries included”. The Django admin feature meant that we can edit the backend easily, the ORM feature meant that we donot need to spend time learning and perfecting our SQL query skills.
References
1. Ideadrop.co. 2021. [online] Available at: "https://ideadrop.co/full-list-of-features"
2. Crowdicity. 2021. Product Features | Crowdicity. [online] Available at: "https://crowdicity.com/product"
3. Hackr.io. 2021. Flask vs Django in 2021: Which Framework to Choose?. [online] Available at: "https://hackr.io/blog/flask-vs-django"
4. Medium. 2021. Flask vs Django: How to Understand Whether You Need a Hammer or a Toolbox. [online] Available at: "https://steelkiwi.medium.com/flask-vs-django-how-to-understand-whether-you-need-a-hammer-or-a-toolbox-39b8b3a2e4a5"
5. Jetbrains.com. 2021. [online] Available at: "https://www.jetbrains.com/lp/python-developers-survey-2020/"