FEATURES

Forms Management

Document Management

Third-Party Integration

Reports and Growth Charts

Two-way communication -SMS, email

"Very talented. His project management skill and planning has been very useful. We will continue to work with him. Must hire for project management."
KEVIN GRAY
Penny Miller, Australia

TECHNOLOGY STACK

Database (Backend Management)

Our backend provides all business functionality like front end processing, image processing, business processing and rendering required database queries.

Our backend will also expose APIs for saving different states of DB objects.

Database Schema

For saving different states of application as well as the user related data, the application will use a relational database like MySql or PostgreSQL. It will have tables for users and their details, logos created and favorited by them, and different states of logos during editing.

Our Core DB Logic

We have built different APIs on the backend to do core business logic. The APIs are divided into different modules as shown below. Each module will have functions for core logic related to the module.

We built DB logic for each of these functions as follows:

  • Account Module
    • GetSettings: Get account settings
    • SaveSettings: Save account settings
    • DeleteAccount: Delete account
  • Logo Module
    • GetUserLogos: Get all logos edited or favorited by the user
    • DeleteLogo: Delete a logo saved by user
    • SaveUserInfo: Save company details (used for logo creation)
    • SaveColor: Save brand colors (used for logo creation)
    • SaveIcon: Save preferred icons for brand (used for logo creation)
    • GenerateLogos: Generate a list of logos based on user saved criteria
    • MarkFavorite: Mark a logo as favorite (save it to user’s logos)
    • DownloadLogo: Generate files for downloading a logo
  • Editor Module
    • GetCanvas: Get canvas object for a logo (to enable editing of logo)
    • SaveCanvas: Save canvas object after user edits logo
  • LogoComponents Module
    • GetRelatedWords: Generate and get a list of words similar to user’s search term 
    • GetIcons: Get a list of icons based on user’s search keyword
    • GetShapes: Get a list of shapes to show in editor or logo creation flow
    • GetFonts: Get a list of fonts to show in editor
    • GetTemplates: Get a list of templates to show in editor
    • GetBackgrounds: Get a list of backgrounds to show in editor

Image processing

We have implemented various image processing features that can be added to the application to enhance the output logos like blending, masking and applying various filters like grayscale, blur, etc. These can be applied to canvas objects created in the backend using various libraries or in-built features in JavaScript.

For this, a module will be created that will import all the necessary libraries for performing such operations on the canvas object. This module (or class) will have different methods to perform operations like alpha blending, masking and applying filters as shown below:

Please note that more advanced functionality like image optimizing, rescaling, rotating images, etc. can also be added to this class depending on the requirement. These advanced operations are achieved by importing different libraries in python or nodejs that provide this functionality.

Note: Some operations of image processing can also be applied on front end via JavaScript in the browser. For example, applying filters on the logo can be achieved in the frontend by adding an image on the canvas object and applying filters on the image.

Performance and Security

To achieve high performance in the application, we recommend following best practices in code in both frontend and backend. Some examples of best practices that can be followed are:

  1. Writing high performance JavaScript code in the front end by using best practices in JavaScript and frameworks like React.
  2. On the client side, wherever effects and animations are used, make sure to get higher frames per seconds by using various tricks to write performant animations.
  3. Keep the build size of bundles as small as possible by using various build tools, using lazy loading and by compressing them before getting from the server.
  4. Using reverse proxy like Nginx to serve static files faster and applying gzip compression on them.
  5. Writing performant code in the backend to avoid any bottlenecks in performance.
  6. Using CDNs to serve static files faster based on location of end users.
  7. Optimizing database performance by writing queries that perform better and adding appropriate indexing on tables.
  8. Using cache wherever it is appropriate to reduce processing time for repeated calls to the server.
  9. Applying various other best practices on all levels i.e, Frontend, backend, database, and deployment. 

We have prepared Wireframes and Front end design using Adobe XD, Photoshop in coming up with the initial design and mockup and followed by further design revisions 

  • Design graphic user interface elements, like menus and tabs
  • Illustrate design ideas using storyboards, process flows
  • Built page elements such custom graphics and illustrations
  • Developed UI mockups and prototypes that clearly illustrate how sites function and look like
  • Layout adjustments based on user feedback

Our Development Team came up with the technical architecture followed by data flow design, process flow design, flow charts, and technical documentation 

We used PHP Tech Stack with Application Programming Interfaces (APIs) which let “Plug in” to other Useful Features. Through our highly skilled and certified developers, we developed custom solutions and technical services on a wide range of requirements and thereby exceeding the client’s expectations. This has all been achieved through our efficient coding best practices, development processes, implementation guidelines, technical maturity & end to end delivery.

We performed a comprehensive test strategy since technology stack undergo constant changes due to upgrades in web and mobile technologies. Our testing included exhaustive functional and non-functional testing, manual and automation testing besides performance and security testing. Our automated Application Testing and Performance Analysis ensured testing the applications on multiple devices and form factors and make the testing process quick, efficient, reliable, repeatable and reusable.

Our comprehensive application testing coverage included  the following:

  • Functional testing including UI testing for native, hybrid and web applications
  • Cross Browser Testing across various browser platforms
  • Cross platform testing: iOS, Android, Windows, BlackBerry and HTML5
  • Non-functional testing: Performance, stability, security and compliance
  • Usability and compatibility testing