Saturday, August 30, 2014

Before Starting to Code......

Bootstrap

Bootstrap is the most popular HTML, CSS, and JS framework for developing responsive, mobile first projects on the web.Bootstrap makes front-end web development faster and easier. It's made for folks of all skill levels, devices of all shapes, and projects of all sizes.
In order to add the bootstrap framework into your project
  1. Go to http://getbootstrap.com/ and download the files.                  
  2. Create a folder inside codeigniter folder named 'assets'.
  3. Create a folder inside assets folder named 'css'.
  4. Put css files into css folder along with the 'bootstrap.min.css' file.
  5. Add this code segmant inside the head section in your view files.

  6. <?php
    echo link_tag('assets/css/filename.css');
    echo link_tag('assets/css/bootstrap.min.css');
    ?>

Codeigniter URLs

  URLs in CodeIgniter are designed to be search-engine and human friendly. Rather than using the standard "query string" approach to URLs that is synonymous with dynamic systems, CodeIgniter uses a segment-based approach. By default, the index.php file will be included in your URLs
   eg.  example.com/index.php/news/article/my_article


Removing The index.php File
  1. download the .htaccess file from the link provided below.                     http://www.mediafire.com/view/ql6ni1sae04h1n4/htaccess
  2. copy that file in to your Codeigniter folder.
  3. go to C:\wamp\www\Rally_CI\application\config and open the config file.
  4. make $config['index_page'] = 'index.php'; to $config['index_page'] = '';
  5. click on the wamp icon -> Apache -> Apache modules -> enable 'rewrite_module'

Introduction to PHP - Codeigniter

PHP
     PHP is a server-side scripting language designed for web development but also used as a general-purpose programming language.
      PHP code can be simply mixed with HTML code, or it can be used in combination with various templating engines and web frameworks. PHP code is usually processed by a PHP interpreter, which is usually implemented as a web server's native module or a Common Gateway Interface (CGI) executable. After the PHP code is interpreted and executed, the web server sends resulting output to its client, usually in form of a part of the generated web page – for example, PHP code can generate a web page's HTML code, an image, or some other data. PHP has also evolved to include a command-line interface (CLI) capability and can be used in standalone graphical applications.


Any language is easy to learn with a framework. Therefore out team came up with the idea of coding using php-codeigniter framework.



PHP - Codeigniter



   CodeIgniter is a powerful PHP framework with a very small footprint, built for PHP coders who need a simple and elegant toolkit to create full-featured web applications.CodeIgniter is loosely based on the popular Model-View-Controller development pattern. While view and controller classes are a necessary part of development under CodeIgniter, models are optional. CodeIgniter is most often noted for its speed when compared to other PHP frameworks.














CodeIgniter Is Right for You if…
  •     You want a framework with a small footprint.
  •     You need exceptional performance.
  •     You need clear, thorough documentation.
  •     You are not interested in large-scale monolithic libraries.
  •     You need broad compatibility with standard hosting.
  •     You prefer nearly zero configurations.
  •     You don't want to adhere to restrictive coding rules.
  •     You don't want to learn another template language.
  •     You prefer simple solutions to complexity.
  •     You want to spend more time away from the computer.

    Advantages of CodeIgniter:
  •      Easy and hassle-free migration from server hosting to server hosting.
  •      Easy to learn, adopt and deploy
  •      Easy handling and customizing.
  •      A new functionality has been applied without affecting the customization at all.
  •      Offers flexibility and easy management With MVC based framework.
  •      Active Record Implementation is simply superb and easy to remember.
  •      Provides easier configuration and customization of configuration files.
  •      Facilitates easy working with a variety of developers.
  •      Good collection of possessed libraries.
  •      Awesome documentation of the user guide, which makes it easy for any coder to use the whole framework.
  •      Enables to incorporate its own existing scripts as well as develop core librariesfor the system
  •      Lightweight and extensive.
     
     Disadvantages of CodeIgniter:
  •       Its PHP based only and not very object-oriented in some parts
  •       PHP4 legacy code
  •       Company-driven instead of community-driven
  •       Irregular releases
  •       Framework itself has no built-in ORM (only via 3rd party solutions).



Friday, August 29, 2014

AGILE

What Is Agile?

The Agile movement proposes alternatives to traditional project management. Agile approaches are typically used in software development to help businesses respond to unpredictability.
Agilityagility is defined as "the ability of a system to rapidly respond to change by adapting its initial stable configuration".

Why Agile?

  • Customer satisfaction by rapid delivery of useful software
  • Welcome changing requirements, even late in development
  • Working software is delivered frequently (weeks rather than months)
  • Working software is the principal measure of progress
  • Close, daily co-operation between business people and developers
  • Face-to-face conversation is the best form of communication (co-location)
  • Projects are built around motivated individuals, who should be trusted
  • Continuous attention to technical excellence and good design
  • Simplicity
  • Self-organizing teams
  • Regular adaptation to changing circumstances

Scrum

Scrum is the most popular way of introducing Agility due to its simplicity and flexibility. Scrum emphasizes empirical feedback, team self management, and striving to build properly tested product increments within short iterations. 

Scrum Roles


Agile Project Life Cycle

  • In agile software development life cycle the product or solution is first divided into features which need to be developed. If there are new features identified in the midst of complete product release it again gets planned across sprints. Agile Sprint duration is decided based on feature to be developed. Every sprint goes through the phases of Requirement, Design, Development and Testing phase.
  • In the requirements phase, software requirements are framed.
  • In the Design phase, design of the product / solution to be done is come up with. Here test team understands the requirements and comes up with a test strategy / plan to proceed with testing of the piece being developed.
  • In the Development phase, Developers are actively involved in writing source for solutions to be provided and then in unit testing of the functionalists developed. Here the test team is involved in writing test cases for functionalists being developed.
  • In the Test phase, Manual testing happens on the basis of test cases written. Automation testing for the test cases automated is also done. Here the development team is involved in fixing the bugs reported and test team re-verifies it.

Pros and Cons of Agile

ProsCons
  • Is a very realistic approach to software development
  • Promotes teamwork and cross training.
  • Functionality can be developed rapidly and demonstrated.
  • Resource requirements are minimum.
  • Suitable for fixed or changing requirements
  • Delivers early partial working solutions.
  • Good model for environments that change steadily.
  • Minimal rules, documentation easily employed.
  • Enables concurrent development and delivery within an overall planned context.
  • Little or no planning required
  • Easy to manage
  • Gives flexibility to developers
  • Not suitable for handling complex dependencies.
  • More risk of sustainability, maintainability and extensibility.
  • An overall plan, an agile leader and agile PM practice is a must without which it will not work.
  • Strict delivery management dictates the scope, functionality to be delivered, and adjustments to meet the deadlines.
  • Depends heavily on customer interaction, so if customer is not clear, team can be driven in the wrong direction.
  • There is very high individual dependency, since there is minimum documentation generated.
  • Transfer of technology to new team members may be quite challenging due to lack of documentation.

Thursday, August 14, 2014

Hello World!




 This is my first blog post. This blog was created to give my experience about the project we do at my university as a 3rd year student and to help all of you gather some knowledge about the coding language we use PHP codeigniter . SEP or Software Engineering Project! SEP is a module where we had to get in to groups of 4 and create a system according to a real time customer requirements. At first it all sounded so much fun but then came the part where we all had do work our minds off. So by going through my blog you will be able to experience my experience of the work we do for our SE project; the fun time we have, the lessons we learn, experiences at presentations, the arguments etc. I'm sure all of you will learn a good lesson from my experience :)