Beruflich Dokumente
Kultur Dokumente
03414802711
Acknowledgement
I hereby take this opportunity to thank all those people whose knowledge and
experience helped me bring this report in its present form. It would have been a
tough task for me to complete report without their help.
I express my sincere thanks and gratitude to my tutor Ms. Shilpy, Technology
Specialist, NIIT for providing me the opportunity to pursue my training at the
institute.
I would like to express my gratitude to my group members, Varidhi Garg,
Vedanshu Jain for helping and contributing in every aspect during the training
phase as well as in carrying out the whole project.
Finally I would like to express my deep appreciation to my family and friends who
have been a constant source of inspiration. I am internally grateful to them for
always encouraging me wherever and whenever I needed them.
Akshay Rohatgi
03414802711
Declaration
I hereby certify that the work which is being presented in the Summer Training
Project entitled Donate Portal in partial fulfillment for the award of the Degree
of Bachelor of Technology in Computer Science and Engineering affiliated to Guru
Gobind Singh Indraprastha University, New Delhi and submitted to the
Department of Computer Science and Engineering of Maharaja Agrasen Institute
of Technology, Rohini, is an authentic record of my own work carried out during a
period from June 2013 to August 2013. The matter represented in this report has
not been submitted by me for award of any other degree of this or any other
institute/university.
Date: -
Name:
Akshay Rohatgi (03414802711)
Varidhi Garg (00214802711)
Vedanshu Jain (04814802711)
Preface
This Project entitled Donate Portal was came into being after seeing the constant
need to develop a portal where NGOs can directly interact with Samaritans without
intervention of any other party. It aims to bring a person who wish to help, to the
community who needs the help of such person.
This Project is basically an online portal which facilitates the communication of
donor directly with the NGO. It is developed in primarily ASP.NET supported by
various other technologies like DBMS, Javascript etc.
The project is based on code behind page approach and hence divided into two
components Backend and interface. While Backend component deals with
donation, lock and accept mechanism, the interface component provides users of
this portal an extremely friendly environment to interact with each other.
Interface component of this project is developed using Active Server Pages in
HTML5, JavaScript and CSS while backend has been developed in C# , XML,
Google Maps API and MSSQL Database Server.
Organization Introduction
List of Figures
Table of contents
1. Introduction----------------------------------------------------------------------------------1
1.1 Concept and Inspiration-----------------------------------------------01
1.2 Terminology------------------------------------------------------------01
1.3 Technology Used------------------------------------------------------02
1.4 Web Application-------------------------------------------------------02
1.5 Key features of Donate Portal-------------------------------------03
2. Technologies Used in the project--------------------------------------------------------04
2.1 List of Technologies---------------------------------------------------04
2.2 ASP.NET----------------------------------------------------------------04
2.3 JavaScript---------------------------------------------------------------05
2.4 IIS Server---------------------------------------------------------------06
2.5 SQL----------------------------------------------------------------------07
2.6 Web API----------------------------------------------------------------09
2.7 XML--------------------------------------------------------------------10
2.8 HTML5-----------------------------------------------------------------12
2.9 CSS3--------------------------------------------------------------------13
2.10
AJAX---------------------------------------------------------------13
User Registration---------------------------------------------15
3.1.2
User Login.----------------------------------------------------16
NGO------------------------------------------------------------18
3.2.2
Donator---------------------------------------------------------19
3.2.3
Guest------------------------------------------------------------19
1. Introduction
1.1 Concept and Inspiration
The concept of this project comes from the fact that there are people in the society
who are good enough to donate the products which they dont require anymore to
others in need. But these people do not have an effective mechanism to do so. Thus
this portal is created to provide a convenient way to help these people reach out to
those people who are in need.
This project provides a convenient way to introducing donators directly with the
NGOs without any intervention of a third party. Thus reducing the possibility of
any dishonesty that may be introduced by a third party. Here NGO is directly given
the address of a donator and hence it can go and picks up whatever item that
donator wishes to donate. This also reduces any kind of overhead to portal
administrators as the process of pickup and delivery are handled by NGOs and
donators themselves.
The project is deployed over World Wide Web as a web application and hence is
available to vast majority of people who have access to World Wide Web. The
motive to deploy it over to internet is also motivated by the fact that it is one of the
effective and economic medium to increase the reach of this portal to masses.
ASP.NET is used as framework for design and program of this web application.
This architecture not only facilitates the development of web applications very
quickly but also complicated applications can be developed in this framework.
1.2 Terminology
In the following discussion of this project the following terms will be encountered
repeatedly. These are:
1. User: This term represent any visitor who visits the web application, whether guest, NGO
representative or a donator and whether logged in or not.
2. Donator: This term represent the entity which is registered on the web application with donator
role. In other words it is that registered user who wishes to donate products through this portal.
3. NGOs: As the name suggest, this term represent an entity of an organization who is registered on
the website through NGO role and works in the field of social development. These are entities
that will be having option of accepting requests which are made by donators.
4. Donation requests: Or simply requests, this term denote an offer made by the donator on the
portal about a product that he wishes to donate
5. Request Record: It means the record of donations done by a specific user, i.e. A Request Record
of a donator means the list of donation done by him.
6. NGO panel: This refers to the default webpage which is opened when an NGO representative
logs in to web application.
2. Management of users: Users are classified in two three categories (donator, NGO, guest) and for
all the login and signup is managed. The database in which login and signup data is being stored
is secure to a very high level and cryptic.
3. Donation Mechanism: The process of donating and accepting that donation is also facilitated by
extensive programming.
4. Google Maps Integration: The application also offers integration with Google map API which
allows high accuracy and convenient mode of selection of address.
5. Abstraction: This high level framework provides this portal with a good level of abstraction.
Various technologies from JavaScript to CSS to C# have integrated skill fully to provide this level
of abstraction.
6. Flexibility: Flexibility at both native and abstract level allows this application to
.
2.2 ASP.NET
ASP.NET stands for Active Server Pages .NET and is developed by Microsoft.
ASP.NET is used to create web pages and web technologies and is an integral part
of Microsofts .NET framework vision. As a member of the .NET framework,
ASP.NET is a very valuable tool for programmers and developers as it allows them
to build dynamic, rich web sites and web applications using compiled languages
like VB and C#.
ASP.NET is not limited to script languages, it allows you to make use of .NET
languages like C#, J#, VB, etc. It allows developers to build very compelling
applications by making use of Visual Studio, the development tool provided by
Microsoft. ASP.NET is purely server-side technology. It is built on a common
language runtime that can be used on any Windows server to host powerful
ASP.NET web sites and technologies.
1. ASP.NET drastically reduces the amount of code required to build large applications.
2. With built-in Windows authentication and per-application configuration, your applications are
safe and secured.
3. It provides better performance by taking advantage of early binding, just-in-time compilation,
native optimization, and caching services right out of the box.
4. The ASP.NET framework is complemented by a rich toolbox and designer in the Visual Studio
integrated development environment. WYSIWYG editing, drag-and-drop server controls, and
automatic deployment are just a few of the features this powerful tool provides.
5. Provides simplicity as ASP.NET makes it easy to perform common tasks, from simple form
submission and client authentication to deployment and site configuration.
6. The source code and HTML are together therefore ASP.NET pages are easy to maintain and
write. Also the source code is executed on the server. This provides a lot of power and flexibility
to the web pages
Although like any other technology ASP.NET has some disadvantages including
lack of view state, costly development tools and hosting etc. it is still one the main
technology on which the current web applications are being built in.
2.3 JavaScript
JavaScript (JS) is an interpreted computer programming language. As part of web browsers,
implementations allow client-side scripts to interact with the user, control the browser,
communicate asynchronously, and alter the document content that is displayed. It has also become
common in server-side programming, game development and the creation of desktop applications.
JavaScript is a prototype-based scripting language with dynamic typing and has first-class functions.
Its syntax was influenced by C. JavaScript copies many names and naming conventions from Java, but
the two languages are otherwise unrelated and have very different semantics. The key design principles
within JavaScript are taken from the Self and Scheme programming languages. It is a multiparadigm language, supporting object-oriented, imperative, and functional programming styles.
JavaScript was formalized in the ECMAScript language standard and is primarily used as part of a web
browser (client-side JavaScript). This enables programmatic access to computational objects within a host
environment.
The application of JavaScript to uses outside of web pagesfor example, in PDF documents, site-specific
browsers, and desktop widgetsis also significant. Newer and faster JavaScript VMs and frameworks
built upon them (notably Node.js) have also increased the popularity of JavaScript for server-side web
applications.
web applications, IIS's scalable and open architecture is ready to handle the most
demanding tasks.
2.5 SQL
SQL is a special-purpose programming language designed for managing data held in a relational database
management system (RDBMS).
Originally based upon relational algebra and tuple relational calculus, SQL consists of a data definition
language and a data manipulation language. The scope of SQL includes data insert, query, update and
delete, schema creation and modification, and data access control. Although SQL is often described as,
and to a great extent is, a declarative language (4GL), it also includes procedural elements.
SQL was one of the first commercial languages for Edgar F. Codd's relational model, as described in his
influential 1970 paper "A Relational Model of Data for Large Shared Data Banks". Despite not entirely
adhering to the relational model as described by Codd, it became the most widely used database language.
SQL became a standard of the American National Standards Institute (ANSI) in 1986, and of
the International Organization for Standards (ISO) in 1987. Since then, the standard has been enhanced
several times with added features. Despite these standards, code is not completely portable among
different database systems, which can lead to vendor lock-in. The different makers do not perfectly adhere
to the standard, for instance by adding extensions, and the standard itself is sometimes ambiguous.
The general concept of a web API (application programming interface) has two
main interpretations. It is used to refer to both a server-side API upon a web
server as well as client-side API within a web browser. We use server side API i.e.
google APIs for our project.
Server Side
A server-side web API is a programmatic interface to a defined request-response message system,
typically expressed in JSON or XML, which is exposed via the webmost commonly by means of
an HTTP-based web server. Mashups are web applications which combine the use of multiple such web
APIs.
While "web API" in this context is sometimes considered a synonym for web service, Web 2.0 web
applications have moved away from a service-oriented architecture (SOA) with SOAP-based web
services towards more cohesive collections of Restful web resources. These Restful web APIs are
accessible via standard HTTP methods by a variety of HTTP clients including browsers and mobile
devices..
Client Side
There are a number of client-sides web APIs that have been developed (mostly targeting
standardized JavaScript bindings to functionality within a web browser).
The Mozilla Foundation created their WebAPI specification which is designed to help replace native
mobile applications with HTML5applications.
2.7 XML
It is a markup language that defines a set of rules for encoding documents in a format that is both humanreadable and machine-readable. It is defined in the XML 1.0 Specification produced by the W3C, and
several other related specifications, all free open standards.
The design goals of XML emphasize simplicity, generality, and usability over the Internet. It is a textual
data format with strong support via Unicode for the languages of the world. Although the design of XML
focuses on documents, it is widely used for the representation of arbitrary data structures, for example
in web services.
Key Terminology
(Unicode) character
/>
Element
A logical document component which either begins with a start-tag and ends
with a matching end-tag or consists only of an empty-element tag. The
characters between the start- and end-tags, if any, are the element's content,
and may contain markup, including other elements, which are called child
elements.
An
example
of
an
element
is <Greeting>Hello, world.</Greeting> (see hello world). Another
is <line-break />.
Attribute
A markup construct consisting of a name/value pair that exists within a starttag or empty-element tag. In the example (below) the element img has two
attributes, src and alt:
<img src="madonna.jpg" alt='Foligno Madonna, by Raphael'/>
where the name of the attribute is "number" and the value is "3".
XML declaration
2.8 HTML5
HTML5 is a markup language used for structuring and presenting content for the World Wide
Web and a core technology of the Internet. It is the fifth revision of the HTML standard (created in
1990 and standardized as HTML 4 as of 1997 and, as of December 2012, is a candidate
recommendation of the World Wide Web Consortium (W3C). Its core aims have been to improve the
language with support for the latest multimedia while keeping it easily readable by humans and
consistently understood by computers and devices (web browsers, parsers, etc.). HTML5 is intended
to subsume not only HTML 4, but also XHTML 1 and DOM Level 2 HTML Following its immediate
predecessors HTML 4.01 and XHTML 1.1, HTML5 is a response to the fact that the HTML and
XHTML in common use on the World Wide Web are a mixture of features introduced by various
specifications, along with those introduced by software products such as web browsers, those
established by common practice, and the many syntax errors in existing web documents.
It is also an attempt to define a single markup language that can be written in either HTML or
XHTML syntax. It includes detailed processing models to encourage more interoperable
implementations; it extends, improves and rationalizes the markup available for documents, and
introduces markup and application programming interfaces (APIs) for complex web applications.
In
particular,
HTML5
adds
many
new syntactic features.
These
include
the
new <video>, <audio> and <canvas> elements, as well as the integration of scalable vector graphics
(SVG) content (that replaces the uses of generic <object> tags) and MathML for mathematical
formulas. These features are designed to make it easy to include and
handle multimedia and graphical content on the web without having to resort to
proprietary plugins and APIs.
2.9 CSS3
Cascading Style Sheets (CSS) is a style sheet language used for describing the presentation
semantics (the look and formatting) of a document written in a markup language. Its most common
application is to style web pages written in HTML and XHTML, but the language can also be applied
to any kind of XML document, including plain XML, SVG and XUL.
CSS is designed primarily to enable the separation of document content (written in HTML or a
similar markup language) from document presentation, including elements such as the layout, colors,
and fonts. This separation can improve content accessibility, provide more flexibility and control in
the specification of presentation characteristics, enable multiple pages to share formatting, and reduce
complexity and repetition in the structural content (such as by allowing for table less web design).
CSS can also allow the same markup page to be presented in different styles for different rendering
methods, such as on-screen, in print, by voice (when read out by a speech-based browser or screen
reader) and on Braille-based, tactile devices. It can also be used to allow the web page to display
differently depending on the screen size or device on which it is being viewed. While the author of a
document typically links that document to a CSS file, readers can use a different style sheet, perhaps
one on their own computer, to override the one the author has specified.
CSS specifies a priority scheme to determine which style rules apply if more than one rule matches
against a particular element. In this so-called cascade, priorities or weights are calculated and
assigned to rules, so that the results are predictable.
The CSS specifications are maintained by the World Wide Web Consortium (W3C). Internet media
type (MIME type) text/css is registered for use with CSS by RFC 2318 (March 1998), and they
also operate a free CSS validation service.
2.10 AJAX
It is a group of interrelated web development techniques used on the client-side to
create asynchronous web applications. With Ajax, web applications can send data to, and retrieve data
from, a server asynchronously (in the background) without interfering with the display and behavior of
the existing page. Data can be retrieved using the ScriptManager object. Despite the name, the use of
XML is not required (JSON is often used instead), and the requests do not need to be asynchronous.
Ajax is not a single technology, but a group of technologies. HTML and CSS can be used in combination
to mark up and style information. The DOM is accessed with JavaScript to dynamically display, and
allow the user to interact with, the information presented. JavaScript and the ScriptManager object
provide a method for exchanging data asynchronously between browser and server to avoid full page
reloads.
The term Ajax has come to represent a broad group of web technologies that can be used to implement a
web application that communicates with a server in the background, without interfering with the current
state of the page. In the article that coined the term Ajax, Jesse James Garrett explained that the following
technologies are incorporated:
This project is divided into replace parts. The first module which was designed
was the user and NGO registration module. For this purpose asp.net functionality
of Login and Registration was used (i.e. Create User and Login Panel).
3.1.1 User Registration:
Registration module provides user with a web form which has various option to
facilitate registration. These options include text box for user name, password,
email id, security question and answer and a radio box for selecting whether the
registration entity is a user or an NGO.
After taking the details from the user the fields are validates against proper well
defined constraints (i.e. unique email id and user name, password strength etc.). A
form with and empty field is not accepted.
After taking in inputs the details are stored in MSSQL database connected to the
web application. Password is stored as 128 bit cryptic key generate using md5
For the login process User Name and password in taken as input through a
webform which contains two textboxes to take user name and password as input.
ASP.NET inbuilt functionality to verify user name with the password is used
through membership class to validate the credentials. If this is successful then the
role of user is determined (i.e. donator or NGO) and accordingly user or NGO
panel is opened.
A user logged in as an NGO will see the NGO panel by default through which he
can keep track of the donation available in his vicinity. The other webpage
available to NGO access user includes a detail entry page, into which he can enter
and update his personal details which include his location, preferred categories etc.
Further he can also access all the pages available to a guest except the login page.
Screen shot of detail entry page
3.2.2 Donator
A user who is logged in with donator role will view the donate_request page by
default. Donator can view record and keep track of donations which he has made
through this portal. He can also access all the pages available to a guest except the
login page.
Screen Shot of donation tracking (optional)
3.2.3 Guest
When the User/Guest click on NGO names then complete detail of NGO are
shown a below
4.2 Step 1
This step allows user to input the detail of item he wishes to donate. These details
include a description of item and its category. Category is further divided into
various subsections which include various things like toys, furniture, electronics
etc.
Image of Step 1:
4.3 Step 2
In this step user selects a pickup date. This date is according to the convenience of
user. Whatever date is selected by the user, NGO is required to pick the item in that
date only. This is done to make the process of donation easy for the user. Validity
of donation request is on this date only.
Image of step 2:
4.4 Step 3
This step requires the user to provide the address of pickup. The address includes
basic street address along with optional feature to input the coordinates of the
location of pickup. The function of entering the latitude and longitude are featured
by Google Maps API. Thus making it easy for the NGO to find the pickup location
very conveniently.
Image of step 3
This chapter describes how the requests are being managed by application. This
module of managing donation request is further divided into two parts:
1. Donator Request Management
2. Request Lock Mechanism.
The donator request management deals with efficient handling of various donation
requests given by multiple users. It also determines which requests are available to
which NGO based on the location and category of NGO.
Request Lock Mechanism kicks in when an NGO accepts a request. It checks who
all NGO have accepted a request and decides the NGO which will be finally
getting that request.
This mechanism kicks in when an NGO select a request. The entry corresponding
to the request made by NGO is marked locked in the database so that it cannot be
accessed by another NGO.
6. REQUIREMENTS
Pentium 4 @ 1 Ghz
The project Donate Portal is currently in development phase and hence is not
currently deployed. Future of the project lies in the fact, that more the people and
NGO will become aware of the portal, more will its reach and hence more the
successful the project is. We do not aim to earn profit through this project but the
aim of the project is to let the general public and NGO interact without
intervention of third party and create an environment blessed with goodwill and
cooperation.
7.1.2
Expansion
We do not want to limit the scope of this to only product donations only instead we
want to expand the scope of this project to services also. Services here means that
people would able to volunteer for services they are good in. As for example,
teacher can volunteer for teaching unprivileged students on their weekends etc.
7.2 Functionalities
1. Donation of services: This will be for those who are willing to teach their expertise to
unprivileged people during their free time.
2. Good Interface: We wish to use jQuery for to make the web application more simple to use.
4. Right now the map functionality is too heavy for the mobile. We, in the future wish to correct this
using Bing or Google mobile API or maybe mobile OS native map application.
We deeply assessed the use and technical feasibility of the software to be developed.
Then we identified the Domain Constraints i.e. the specific environment needed for
effective application. This helps us to limit the functionality and performance of the
software.
Then according to the objects and functions we have analyzed, we now decided the
flow of the information as per the requirements
Then we define the software functions which we must make to obtain the flow of
data and achieve the projects objective.
Now we analyze the behavior of the software after defining all above tasks so as to
fix the performance.
8.3 Modelling
The modelling is performed by designing the DFDs for all the possible states of the software.
Here we study the function and performance of computer based system and the
constraints.
The requirements which were testable were marked with tests to exercise the
requirements later.
It was made clear that the requirement is traceable to overall system objectives.
The requirements associated with the system performance, behavior, and operational
characteristics were clearly stated.
9 SOFTWARE ATTRIBUTES
9.1 Reliability
The software is quite reliable in allowing users to view latest wholesale prices for available
commodities and its variety in the markets and carry out necessary operation to fetch data
from database. Web service also provides the proper structured XML document for the query.
9.2 Availability
The website is available for use for any type of user (wholesaler / retailer / others) without
any restrictions and rights to modify lie only with the authorized administrator. Also, the
software is not meant for sale purpose.
9.3 Security
The access to database and admin panel of the website is allowed only to authorize
administrator. All the transactions are done over the secured connection.
9.4 Maintainability
The software is designed in easily maintainable and upgradable environment where the
administrators can easily update the contents and descriptions. The maintenance of the
database will be solely handed by the administrators manually.
9.5 Portability
The software is easily portable to another platform that has been defined in the definitions
section and along with this full fills the software and hardware requirements. It satisfy the
minimum memory requirements as stated in the hardware requirements.
Conclusion
According to me there are many people in India who want to help by donating
different things but are unable due to limited access to NGOs. According to my
theory gap between these people and NGOs can be narrowed by this DONATE
PORTAL. It has been a great pleasure for me to work on this exciting and
challenging project. This project proved good for me as it provided practical
knowledge of not only programming in ASP.net, SQL and other technologies,
but also about all handling procedure related with websites. This will provide
better
independently.
Benefits:
The websites provides users with a simple interface which can be easily used by any type of
user.
This provides people to connect with the NGOs with an easy to use interface and provides a
platform for people who want to help others but are unable due to incomplete access to
NGOs.
Users get home pickup system so they can donate form home also.
Site can be used by people with minimal knowledge of computers also.
We introduced a new concept in which people can donate services also.
Limitations:
The process of data updating in the SQL tables is quite a tedious work and requires some
maintenance also.
The site cannot be used by people with absolute zero knowledge of computers o these people
still are not able to get access to these NGOs.
Training for simple computer operations is necessary for the users working on the system.
References
During the development of this project we get large amount of help from our
teachers, friends and lots of source code websites. List of them includes:
Books Referred:
Websites Referred
www.html5rocks.com
www.aspdotnet-suresh.com
www.w3schools.com
www.Codeproject.com
www.Google.com
en.Wikipedia.org
www.thenewboston.com
www.stackoverflow.com