CRM is a tool for the management of customer relationships. It is very useful in any business, from manufacturing goods to those that provide services as it allows to plan a business strategy based on clients. This tools become essential in global markets like IT services where retain a customer is more important than winning new ones.
This tool is an open system data (front office) that gives us the opportunity to exchange information with customers. To create records which allow us to see the concept of value that the customer has with the product, to focus on the real needs processes that give rise to the application and delete processes that result in an increase in the price of the product without increasing its value. We can also anticipate new requirements and provide better after-sales services.
The use of a CRM system often fails or doesn’t give the desired results because its implementation is only limited to software installation without studying the context of the company, nor provide the necessary knowledge to its employees. A CRM system should be implemented only after studying the current relationship with customers and defining the new one that the company wants to reach. Once we know that we will have a clearer picture of which systems we will need, which procedures will need to be standardized and on which topics will be needed to train the staff of the organization.
The CRM software was initially developed by payment and large companies. Recently, however, began to emerge such as “open source”, ie free and open source. This brings with it the following advantages: low cost and the possibility of changing them to the needs of each company.
Capture and Ship is a custom web application which includes very specific features for garment printing industry that focus on productivity, effectiveness and efficiency.
Inception phase
At the beginning of this project the partners of this company, whom were thinking and envisioning this platform, came to us wondering if we would be able to help them with this project. Of course our answer was “yes”. That is how on July 2014 we started working on the inception phase together trying to keep a record for every idea they had, defining high-level requirements and start designing a rough system architecture and database structure. After weeks of work, we reach out the first requirement document with top priority requirements to start working on our first development phase, at that moment we knew it would be a very big project with lot of work to do.
Development phase
We used to work with an agile approach for all our project, for sure this would not be an exception, we started working on milestones with main features by implementing the core of this platform. During firsts month we realized that innovation and creativity would be top priority for most of the process, that's why we integrated trending technologies for this job, not just HTML5, CSS3, jQuery Bootstrap or FontAwesome as we do since a few years ago but also AngularJS, npm, Bower, Grunt as well as automatic tests using Codeception and deploying environment using GIT to speed up release process.
During our development, we had to learn about lots of business rules, specific tools and printing process in order to have the best understanding to deliver the best solution to manage campaign, apparel products, artworks jobs, DTG printing process and delivery of finished products for every client.
The web application provides to administrators the ability to manage users, clients accounts, providers accounts, sales orders, purchase orders and transaction integrating great features to every UI. There are more than 8 users levels, each one with different permission over the system to execute specific actions depending on the status of the printing job. During the production status, the system deploy sub-tasks for administrators and printer provider users where they can order products to suppliers (e.g. t-shirts), monitor artwork files (design providers) and confirm when products are ready to be shipped. In the Orders detail page, administrators are also able to handle payments, confirm payments methods and shipping methods using major companies, they can even include tracking code for each shipment.
Customers can send campaigns and manage different seasons for their products, create new purchase orders for products and sizes, manage multiple users under their customer's account,, for example if you own a company and you need T-shirts for your employees for sure you need to reorder more products time to time.
Additionally, in order to complete and implement the ERP module for this platform we integrated product stock management, internal eCommerce module, accounting module based on the double entry bookkeeping, reports, charts and statistics using Google Charts.
In one of the latest stages, we've implemented an API that allows other applications to connect to this main Capture app in order to create and manage jobs automatically. We've developed a custom CakePHP plugin from scratch for managing external connections, validating and authenticating users through OAuth 2.0. Once the connection is validated, the client app must send a REST request to create printing jobs or monitor progress. All endpoints are specified in the online documentation we have supplied, which was generated automatically from our source code.
Technologies
Let's Plum is a leading company that provides graphic design services to offer a complete solution, from illustration to vectorization. Thus, the continued growth of the company, employees and freelancer it was strongly necessary to develop a very specific management system for their more than 600 artwork jobs they need to deliver every day.
Inception Phase
This first stage was performed with our client to collect all the system requirements with our analysts. We made several meetings in our office in order to clarify all details in order to have enough information to provide to our team. After we reached a good understanding of all our client's needs, they were documented in order to start designing the purposed solution.
Development and Technologies
In the development stage, every functional and non-functional requirement has been implemented as designed in the analysis stage. The core of this application is CakePHP framework combined with AngularJS+Bootstrap for dynamic templates and web design. We installed several jQuery plugins that allowed us to validate forms and data types, upload multiple files, drag images to became preview, also we combined several NodeJS, Bower and Grunt components that provided great features when implementing our solution. The project was completed and we released first stable version on July 2015. Accordingly, we continue working on improvements, system optimizations and enhancements, new features and maintenance in both the system and the server.
The server was installed from scratch, our server admin installed latest CentOS version and necessary dependencies to configure Apache, MySQL, MongoDB, Elastic Search among other modules. We also integrated Dropbox into the web backend application. As a result, designers are able to share their finished artwork files as well as a customer is able to download it by clicking a link on the notification email they received when artwork job is done. In Dropbox, they can upload a zip file (with specific folder format) and the website will scan this folder from Dropbox to create the new artwork job in the backend to start working on it. During the development phase we use Continuous Integration approach, we implement automated tests with Codeception and every test case was designed to validate and verify a requirement or anentire workflow. Furthermore, all technologies we used in this project have also been very useful and gave support our development team to achieve a product of high quality and with maximum efficiency.
In one of the latest stages, we've implemented an API that allows other applications to connect to this main Let's Plum app in order to create and manage jobs automatically. We've developed a custom CakePHP plugin from scratch for managing external connections, validating and authenticating users through OAuth 2.0. Once the connection is validated, the client app must send a REST request to create an artwork jobs or monitor progress. All endpoints are specified in the online documentation we have supplied, which was generated automatically from our source code.
Technologies