Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Website Architecture: 1. Overview

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 7

Website Architecture

1. Overview
The objective of this document is to describe the key features, application
architecture, workflows and entities information of data used by Laravel
Framework.

2. Technology Used
 Database: MySQL 5.5
 Server Specification: Linux Server
 Server Side Technology: PHP (Laravel 5.4 Framework)
 PHP Version: PHP 7

3. Key Features
 Laravel applications use MVC architecture.
 Fast, Secure, various inbuilt functionalities
 Largest community so you can find solutions of any issues vary easily
 Out of box features like real time events (using laravel + vuejs), schedule
creation, notifications
 Perfect framework for start up to large applications, many enterprise
applications built on laravel
 All the passwords are protected in the site using the bcrypt algorithm.
 Encryption and Decryptions are used for storing the sensitive data in the site.
 Cross-Site Request Forgery (CSRF) Prevention
 Caching used for speed up application
4. Application Architecture (Laravel Framework):

About Laravel Framework

Laravel is referred to as a “full stack” framework because it handles everything from


web serving to database management right down to HTML generation. A vertically
integrated web development environment can provide a better experience for the
developer.

Laravel is a web application framework with expressive, elegant syntax. We believe


development must be an enjoyable, creative experience to be truly fulfilling.
Laravel attempts to take the pain out of development by easing common tasks used
in the majority of web projects, such as authentication, routing, sessions, and
caching.
Laravel aims to make the development process a pleasing one for the developer
without sacrificing application functionality. Happy developers make the best code.
To this end, we've attempted to combine the very best of what we have seen in
other web frameworks, including frameworks implemented in other languages,
such as Ruby on Rails, ASP.NET MVC, and Sinatra.

Laravel is accessible, yet powerful, providing powerful tools needed for large,
robust applications. A superb inversion of control container, expressive migration
system, and tightly integrated unit testing support give you the tools you need to
build any application with which you are tasked.

Model-View-Controller (MVC)

Laravel follows the model-view-controller (MVC) architectural pattern, which


enforces a separation between “business logic” from the input and presentation
logic associated with a graphical user interface (GUI). In the case of Laravel web
applications, the business logic typically consists of data models for things like
users, blog posts, and the GUI is just a web page in a web browser. The MVC design
pattern is very popular in the web development space. There are three components
to the MVC pattern:

 The model - The domain that your software is built around. Models are based
on real-world items such as a person, bank account, or product. If you were
building a blog, your models might be post and comment. Models are
typically permanent and will be stored outside the application, often in a
database. A model is more than just data; it enforces all the business rules
that apply to that data. For example, if a discount shouldn’t be applied to
orders of less than $10, the model will enforce the constraint. This makes
sense; by putting the implementation of these business rules in the model,
we make sure that nothing else in the application can make our data invalid.
The model acts as both a gatekeeper and a data store.
 The view - The visual representation of a model, given some context. It’s
usually the resulting markup that the framework renders to the browser, such
as the HTML representing the blog post. The view layer is responsible for
generating a user interface, normally based on data in the model. For
example, an online store will have a list of products to be displayed on a
catalog screen. This list will be accessible via the model, but it will be a view
that accesses the list from the model and formats it for the end user.
Although the view may present the user with various ways of inputting data,
the view itself never handles incoming data. The view’s work is done once the
data is displayed.
 The controller - The coordinator that provides the link between the view and
the model. The controller is responsible for processing input, acting upon the
model, and deciding on what action should be performed, such as rendering
a view or redirecting to another page. Continuing the blog example, the
controller might look up the most recent comments for a post (the model)
and pass them to the view for rendering.

iOS Application Architecture


Supported Devices – 4/4S/5/5C/5S/6/6plus/SE/6S/6SPlus/7/7plus
Operating System: 9.0 and above
Device Orientation: Portrait/Landscape
Language: Swift 3.0

Android Application Architecture


Supported Devices – API 14+ to 26
Device Orientation: Portrait/Landscape
Offline Storage Architecture
Overview of Swift Architecture
Swift is a new programming language for iOS, macOS, watchOS, and tvOS apps
that builds on the best of C and Objective-C, without the constraints of C
compatibility. Swift adopts safe programming patterns and adds modern features
to make programming easier, more flexible, and more fun. Swift’s clean slate,
backed by the mature and much-loved Cocoa and Cocoa Touch frameworks, is an
opportunity to reimagine how software development works.

Swift has been years in the making. Apple laid the foundation for Swift by
advancing our existing compiler, debugger, and framework infrastructure. We
simplified memory management with Automatic Reference Counting (ARC). Our
framework stack, built on the solid base of Foundation and Cocoa, has been
modernized and standardized throughout. Objective-C itself has evolved to
support blocks, collection literals, and modules, enabling framework adoption of
modern language technologies without disruption. Thanks to this groundwork, we
can now introduce a new language for the future of Apple software development.

Swift feels familiar to Objective-C developers. It adopts the readability of


Objective-C’s named parameters and the power of Objective-C’s dynamic object
model. It provides seamless access to existing Cocoa frameworks and mix-and-
match interoperability with Objective-C code. Building from this common ground,
Swift introduces many new features and unifies the procedural and object-
oriented portions of the language.

Swift is friendly to new programmers. It is the first industrial-quality systems


programming language that is as expressive and enjoyable as a scripting language.
It supports playgrounds, an innovative feature that allows programmers to
experiment with Swift code and see the results immediately, without the
overhead of building and running an app.

Swift combines the best in modern language thinking with wisdom from the wider
Apple engineering culture. The compiler is optimized for performance, and the
language is optimized for development, without compromising on either. It’s
designed to scale from “hello, world” to an entire operating system. All this makes
Swift a sound future investment for developers and for Apple.
Swift is a fantastic way to write iOS, macOS, watchOS, and tvOS apps, and will
continue to evolve with new features and capabilities. Our goals for Swift are
ambitious. We can’t wait to see what you create with it.

Development Timeline
PLATFORM DAYS
Database Design & App Architecture 3.0
Web-Admin 31.0
REST API for Mobile Application 10.0
PSD Conversion (Mobile Design Cuttings) 4.0
Android Application 105.0
iOS Application 105.0
Testing & QC 8.0
TOTAL DAYS (iOS + Android Application + Web-Admin) 266.0

Delivery Time
1. Web Development – 9 Weeks with 2 Developers
2. iOS Development – 23 Weeks with 1 Developer
3. Android Development – 23 Weeks with 1 Developer

Resources Allocation (Total Resources 7)


4. Project Lead (1)
5. Designer (1)
6. QC Engineer (1)
7. Web Development
1. Lead Developer (1)
2. Sr. Developer (1)
8. iOS Development
1. Lead Developer (1)
9. Android Development
1. Lead Developer (1)

You might also like