Skip to main content

Theme Settings

Layout Style

Color

Direction

Image
developer workflow

Working on Projects

Body

Preparation

Before you read the rest of this document you should ensure that you have the following setup. Your laptop should run Ubuntu 16.04 LTS. You should keep in mind that all our development is based on Operating Systems that use the Linux Kernel, if you plan to use any other operating system then you are on your own since our expertise is limited to working on Linux. Before you start on a Project you should be familiar with the following

  • Working on the Linux Command Line
  • Running SQL queries for Data Retrieval and Data Definition on MySQL or Maria or any other relation Database
  • Starting and Stopping the Webserver - Apache or Nginx. If you know how to configure a host on a webserver then all the more better.
  • Working on PHP and JavaScript
  • Knowledge of Server side and Client Side Frameworks and Libraries like AngularJS, Drupal, JQuery

If you need to brush up your skills then download the presentations from the Sastra website.

 

Setting up your laptop

Ensure your laptop is running the Ubuntu 16.04 LTS. Do not use any other builds of Ubuntu. Then install the following

  • NGINX
  • Maria DB
  • and based on your project you will require one of the following
  • PHP
  • Drupal 7.x or 8.x
  • As an organisation we use the following development tools so you need to install the following
  • GIT

The script to install the required packages is available on our GIT Reporsitory here : http://git.sastratechnologies.net/InstallInfrastructure.git/blob/master/applicationsinstalllaptop.sh) Having setup your laptop it is time to setup your working directories.

 

Scaffolding your Project directories

We usually install our Virtual Host directories at /home/sridhar/ or in your case it will be /home/yourusername/. A typical structure will be as follows /home/sridhar/public_html /sastratechnologies.biz /backup /cgi-bin /log /private /public /sastratechnologies.com /backup /cgi-bin /log /private /public /sastratechnologies.in /backup /cgi-bin /log /private /public So when you set up your Vistual Hosts the ROOT folders should point to the "public" directory. No development should take place in the directories read by the webserver. You should create a separate directoory for your project. $/home/yourusername/projects Once you do this then you should scaffold your project for development. Scaffolding is the process of setting up the required directories and paths. We use Yeoman (yeoman.io) to generate the scaffolding when the dirst set of developers start the project. If you happen to join the project when its already in its course then its better you clone the project from the GIT reporsitory. This will ensure that you get the latest MASTER branch. Now that you have the latest MASTER branch you can start developing your modules.

A brief about style and coding standards

All team members are required to adhere to the specifications and style if their code has to pass the testing. For Angular JS the style guide is available here https://google.github.io/styleguide/javascriptguide.xml (do not use the style guide fo closure users available on Google). For Drupal module developers the coding standards and style guide is available here : https://www.drupal.org/docs/develop/standards

Developing and fixing

Before you start developing you should have a fair idea of what you should develop. For this check the release plan or or bugs database (for the list of issues to be fixed). Pick up one that you want to fix. Lets say that you want to develop "feature 27" and fix "bug 108". First and foremost you should create separate branches in GIT to do these. Do not develop on the "master" branch. Name your branches "feature 27" and "bug 108" its easier to identtify what the branch contains if your naming convention is meaningful. Develop or make fixes on your branches, add assets and then merge with the master branch. Deploy it on your localhost. test, Debug and Profile your code. Then PUSH the code to the git repository on the server. Proceed to fix with the next bug fix or feature.

What happens after you push the code to repository

Once you PUSH your code to GIT. Jenkins or Continuous Integration server PULLS the master branch and then deploys and runs the unit and system tests. If the tests fail the issues are automatically logged into our bugs database (bugs.sastratechnologies.net) and an email is sent out. You can download the developer workflow infographic to give you an idea of how our development process works.

Leave a comment

Restricted HTML

  • Allowed HTML tags: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.

Categories

  • Analytics and Big Data

    Big data is data sets that are so voluminous and complex that traditional data-processing application software are inadequate to deal with them. Big data challenges include capturing data, data storage, data analysis, search, sharing, transfer, visualization, querying, updating, information privacy and data source. There are five concepts associated with big data: volume, variety, velocity and, the recently added, veracity and value

  • BPM

    Business process management (BPM) is a discipline in operations management that uses various methods to discovermodelanalyze, measure, improve, optimize, and automate business processes.

  • Capital Markets

    capital market is a financial market in which long-term debt (over a year) or equity-backed securities are bought and sold.

  • CRM

    Customer relationship management (CRM) is an approach to manage a company's interaction with current and potential customers.

  • Engineering

    Software Engineering is the application of engineering to the development of software in a systematic method.

  • Enterprise Integration

    This keyword tags all posts dealing with Enterprise Integration

  • ESB

    An enterprise service bus (ESB) implements a communication system between mutually interacting software applications in a service-oriented architecture (SOA)

  • Finance

    Finance is a field that deals with the study of investments. It includes the dynamics of assets and liabilities over time under conditions of different degrees of uncertainty and risk.

  • Insurance

    Insurance is a means of protection from financial loss. It is a form of risk management primarily used to hedge against the risk of a contingent, uncertain loss.

  • Leasing

    lease is a contractual arrangement calling for the lessee (user) to pay the lessor (owner) for use of an asset.

  • Loan Management

    The process of managing and servicing a loan after it has been disbursed.

  • News

    News is information about current events, announcements and other information about the company

Get the latest in Fintech

Subscribe to our online newspaper dedicated to Financial Technology