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.
- 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
- Maria DB
- and based on your project you will require one of the following
- Drupal 7.x or 8.x
- As an organisation we use the following development tools so you need to install the following
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
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.