Since Nephila's foundation, we’ve decided to adopt Free and Open Source Software in all our daily work. In 2010 we embraced Python programming language, which currently is the basis for all our projects. In desktop development we use it together with Qt graphical toolkit as this match allows an agile development of native desktop applications.
To build web applications we instead opted for Django framework. In particular we adopted django CMS platform, which we employ to create all our web projects based on the management of dynamic contents and to whose development we participate actively by producing our patch.
Python is a dynamically-typed programming language with advanced and very flexible features. The characteristics of this open source tool make it perfect to manage complex web projects which need a strong customization.
We decided to employ Python language because it drastically reduces the development time and it allows people to work without sacrificing precision and quality. This is possible because Python is designed to be read by developers rather than by the computer.
Python adopts a very neat syntactic structure, which allows easing the application development processes and simplify the management of the evolving projects and the collaborations within the working groups.
Django is a high level open source framework designed to create web applications. Originally conceived to manage diverse news websites, nowadays it is globally spread and it's employed by very popular applications such as Mozilla and Instagram. Its essential structure is perfect to develop quickly and efficiently, and also to manage complex projects.
"Django is designed to facilitate the efficient organization of the processes of software development, and the creation of software according to best practices. We had to choose a framework that let us work on the code definition, avoiding the 'boilerplate' - that part of the repetitive code that we end up rewriting every time". (Iacopo)
Django is an agile framework. Developer teams can shape it according to their needs just by writing the specific application code required to implement the project features. By using Django we can satisfy every request and overcome many technological limitations such as the management of complex applications flows and the interfacing with external applications.
"For a publisher specialized in psychological tests, we created some interactive tests which can be bought and executed online. On the same framework designed for the website, we have implemented the e-shop, which not only allows to purchase the products. Through using web services it has been integrated with both the management software and an external service for the consultation of the ebook purchased through the shop. Thanks to the flexibility of Django and all the open source applications available for Django, we have been able to develop exclusively the specific code for the required applications.” (Iacopo)
Django is not only one of our main working instruments, but is also an ideal ground for research and a tool to get in touch with the international community, thanks to whom we could participate to the development of Django applications.
Why django CMS
django CMS is an open source Django application designed to manage dynamic web contents. Thanks to its high degree of flexibility as it is able to fit perfectly in Django projects and to integrate with the other applications involved in the project without imposing constrains.
Many of the projects that we create for our customers are linked to communication plans wherein informative, documentary and divulgative contents play the keyrole.
"We often work with editors and marketing people, who have to manage this type of contents on a regular basis and according to specific plans. For them information management is a crucial aspect to consider as it needs to be consistently contemplated and updated. Therefore, we propose them applications which can work as management tools.” (Emanuela)
We decided to adopt django CMS as our main working tool because it allows us to manage large amount of information quickly and efficiently. This framework besides managing the information is able to provide CMS functionalities to the other applications involved in the project.
django CMS is a friendly tool for content editors. Front-end editor dashboard is clean and neat and allows them to update the content in the published page just with a double-click.
We firmly believe in FLOSS philosophy and this is the reason why we decided to participate in its development and support, in particular Django and Python communities. We don't simply use these technologies but we contribute to their evolution and diffusion by writing code and supporting technical conferences held in Europe.