Essay details:

  • Subject area(s): Engineering
  • Price: Free download
  • Published on: 7th September 2019
  • File format: Text
  • Number of pages: 2

Text preview of this essay:

This page is a preview - download the full version of this essay above.



Submitted By

DHRUMIL P. DESAI (131130116008)

SHAHIL S. MEHTA (131130116023)

PARTH N. MEVADA (131130116031)

In fulfillment for the award of the degree of



Information Technology

                                  SAL COLLEGE OF ENGINEERING

      Gujarat Technological University, Ahmedabad

                                                      OCT-NOV 2015



This is to certify that the Project entitled “   Foodspie  ” has been carried out by DHRUMIL P. DESAI under my guidance in fulfillment of the degree of Bachelor of Engineering in INFORMATION TECHNOLOGY (7th Semester) of Gujarat Technological University, Ahmedabad during the academic year 2016-17.

Internal Guide:

Mrs. Himani Bhavsar

Professor of IT Department

Mr. Mayank Devani

Head of Department

Department Of IT

Sal College of Engineering,




This is to certify that the Project entitled “ Foodspie ” has been carried out by SHAHIL S. MEHTA under my guidance in fulfillment of the degree of Bachelor of Engineering in INFORMATION TECHNOLOGY (7th Semester) of Gujarat Technological University, Ahmedabad during the academic year 2016-17.

Internal Guide:

Mrs. Himani Bhavsar

Professor of IT Department

Mr. Mayank Devani

Head of Department

Department Of IT

Sal College of Engineering,




This is to certify that the Project entitled “ Foodspie ” has been carried out by PARTH N. MEVADA under my guidance in fulfillment of the degree of Bachelor of Engineering in INFORMATION TECHNOLOGY (7th Semester) of Gujarat Technological University, Ahmedabad during the academic year 2016-17.

Internal Guide:

Mrs. Himani Bhavsar

Professor of IT Department

Mr. Mayank Devani

Head of Department

Department Of IT

Sal College of Engineering,




The successful & partial completion of my project named FOODSPIE stands on the constant encouragement, guidance, and support, both Technical & personal of a number of individuals.

However, it would not have been possible without the kind support and help of many individuals and institutional. We would like to extend our sincere thanks to all of them.

We are highly indebted to our internal guide Assistant Professor Himani Bhavsar for her guidance and constant supervision as well as for providing necessary support in the project.

At the same time I would like to thank my Head of the Information Technology   Department Prof. Mayank Devani for his kind co-operation and support. I would also appreciate his keen interest in helping me and his regular guidance throughout the project.


DHRUMIL P. DESAI (131130116008)

SHAHIL S. MEHTA (131130116023)

PARTH N. MEVADA (131130116031)


Foodspie is an iOS based social network application for the food GEEKS around the globe who always like to share about the food they make or the restaurant they visit and recommend the people about the same. It also has a photo sharing platform on which users can upload their pictures of food on the application which would enable to gather the food community around the world. Users can also share the recipe about the food they made. It would also have a feature of displaying you the best food places around you be it a restaurant or a local food shop it would display the best around you based on users reviews and ratings.


Table of Content


 1.1 Project summary--------------------------------------------------- 08

 1.2 Purpose-------------------------------------------------------------- 09

 1.3 Scope---------------------------------------------------------------- 09

 1.4 Technology and Literature Review----------------------------- 09


 2.1.0 Project Planning and Scheduling ------------------------------- 19

 2.1.1 Project Planning--------------------------------------------------- 19

 2.1.2 Project Scheduling------------------------------------------------ 19

 2.2.0 Project Development Approach--------------------------------- 19

 2.3.0 Project Plan--------------------------------------------------------- 21

 2.3.1 Milestone and Deliverables--------------------------------------- 21

 2.3.2 Roles and Responsibilities---------------------------------------- 22


 3.1 User Characteristics---------------------------------------------------------- 24

 3.2 Hardware and Software Characteristics--------------------------------- 24

 3.3 Constraints--------------------------------------------------------------------- 25

3.3.1 Regulatory Policies----------------------------------------------------------- 25

3.3.2 Hardware Limitation---------------------------------------------------------


 4.1 Study of Current System----------------------------------------------------- 28

 4.2 Requirement of this System------------------------------------------- 28

 4.2.1 Functional Requirement------------------------------------------------------ 28

 4.2.2 Nonfunctional requirement-------------------------------------------------- 29

 4.3 Feasibility Study-------------------------------------------------------------- 29

 4.4 Requirement Validation------------------------------------------------------ 30

 4.5 Function of the System------------------------------------------------------- 31

 4.6 Data Modeling----------------------------------------------------------------- 38

 4.7 Main modules of new system----------------------------------------------- 40

 4.8 Justification-------------------------------------------------------------------- 40

List of Figures

5.1 Use Case Diagram for User-------------------------------------- 32

5.2 Use Case Diagram for Admin----------------------------------- 33

5.3 Activity Diagram For User-------------------------------------- 34

5.4 Activity Diagram For Admin------------------------------------ 35

5.5 Sequence diagram of Application------------------------------- 37

5.6 E-R Diagram------------------------------------------------------- 39





1.1 Project summary

The use of social applications has an increasing trend now a days so we created an app just for the people who are excited about food the slang for it is ‘Foodlers’ or ‘FoodGeeks’. The youth of today is crazy about the food so keeping that in mind we created FoodsPie which would be a social platform to share the food recipe and upload the pictures of the food made by the user and also review the same. It also includes an important feature of nearby restaurants or the local food stalls around you which has best food.

Highlights of the app are-

1. Registered user can create their profile which will contain their details such as personal, educational, interests etc.

2. Once registered can upload photos of the food they eat or the recipe of the food.  

3. Users can follow other users and can communicate with each other about their interests in food and restaurants around them.

4. Users will have an inbox and outbox containing received and sent messages

5. Users can upload photos and videos and create an album of their own which their followers would be able to see and comment upon

6. Users can set privacy settings for their profile

7. Users can begin or join any communities they are interested in, can post messages in these communities as well.

1.2 Purpose

 The purpose of developing is application is to create a social platform for the avid travelers who love the food. They can easily upload, share, comment about the food and recipe and also the restaurants and the best local food stalls around them. It would help people discover the new food items and the places at which it is best. Thus creating a community of the food geeks around the world.

1.3 Scope

This application can be used by any person having an apple phone as it is iOS based. The different platforms would be added in the later stage of application as we will progress and it would be free. This application helps in searching your favorite food and recipes and also the restaurants around you.

Nowadays the use of social networking apps is increasing exponentially. Everyone wants to communicate with the people who have same interests as you. For that our application would provide the community for the food lovers and chefs from all around the globe.

This application is safe, easy to access and robust application which servers better features than many other applications. It is like 2 in 1 i.e social + food/restaurants combined with a slight miscellaneous feature of purchasing ingredients required for specific recipe around their nearest location.

1.4 Technology and Literature Review

Technology and tools

Front End: Xcode

Back End:  MySQL

Development Tool: Xcode IDE

Development Language: Objective C

Machine Requirement: Apple Phone (Atleast running ios 8 or later)

Introduction to Xcode:

• Xcode is an integrated development environment (IDE) containing a suite of software development tools developed by Apple for developing software for macOS, iOS, WatchOS and tvOS.

• It was first released in 2003, the latest stable version is 8 and is available via the Mac App store free of charge for OS X El Capitan users.


• Xcode supports source code for the programming languages C, C++, Objective-C, Objective-C++, Java, AppleScript, Python, Ruby, ResEdit (Rez), and Swift, with a variety of programming models, including but not limited to Cocoa, Carbon, and Java. Third parties have added support for GNU Pascal, Free Pascal,[5] Ada,[6] C#,[7] Perl,[8] and D.

• Thanks to the Mach-O executable format, which allows fat binary files, containing code for multiple architectures, Xcode can build universal binary files, which allow software to run on both PowerPC and Intel-based (x86) platforms and that can include both 32-bit and 64-bit code for both architectures. Using the iOS SDK, Xcode can also be used to compile and debug applications for iOS that run on ARM architecture processors.

• Xcode includes the GUI tool Instruments, which runs atop a dynamic tracing framework, DTrace, created by Sun Microsystems and released as part of OpenSolaris.

Introduction to MySQL

a) What is MySQL?

MySQL is an open-source relational database management system(RDBMS).[6] Its name is a combination of \"My\", the name of co-founder Michael Widenius\' daughter,[7] and \"SQL\", the abbreviation for Structured Query Language. The MySQL development project has made its source code available under the terms of the GNU General Public License, as well as under a variety of proprietary agreements. MySQL was owned and sponsored by a single for-profit firm, the Swedish company MySQL AB, now owned by Oracle Corporation.[8] For proprietary use, several paid editions are available, and offer additional functionality.

Features of MySQL:

MySQL is offered under two different editions: the open source MySQL Community Server and the proprietary Enterprise Server.[60] MySQL Enterprise Server is differentiated by a series of proprietary extensions which install as server plugins, but otherwise shares the version numbering system and is built from the same code base.

Major features as available in MySQL 5.6:

• A broad subset of ANSI SQL 99, as well as extensions

• Cross-platform support

• Stored procedures, using a procedural language that closely adheres to SQL/PSM[61]

• Triggers

• Cursors

• Updatable views

• Online DDL when using the InnoDB Storage Engine.

• Information schema

• Performance Schema that collects and aggregates statistics about server execution and query performance for monitoring purposes.[62]

• A set of SQL Mode options to control runtime behavior, including a strict mode to better adhere to SQL standards.

• X/Open XA distributed transaction processing (DTP) support; two phase commit as part of this, using the default InnoDB storage engine

• Transactions with savepoints when using the default InnoDB Storage Engine. The NDB Cluster Storage Engine also supports transactions.

• ACID compliance when using InnoDB and NDB Cluster Storage Engines[63]

• SSL support

• Query caching

• Sub-SELECTs (i.e. nested SELECTs)

• Built-in Replication support (i.e., Master-Master Replication & Master-Slave Replication) with one master per slave, many slaves per master.[64] Multi-master replication is provided in MySQL Cluster,[65] and multi-master support can be added to unclustered configurations using Galera Cluster.[66]

• Full-text indexing and searching[a]

• Embedded database library

• Unicode support[b]

• Partitioned tables with pruning of partitions in optimizer

• Shared-nothing clustering through MySQL Cluster

• Multiple storage engines, allowing one to choose the one that is most effective for each table in the application.[c]

• Native storage engines InnoDB, MyISAM, Merge, Memory (heap), Federated, Archive, CSV, Blackhole, NDB Cluster.

• Commit grouping, gathering multiple transactions from multiple connections together to increase the number of commits per second.

Introduction to objective C

• Objective-C is a general-purpose, object-oriented programming language that adds Smalltalk-style messaging to the C programming language. It was the main programming language used by Apple for the OS X and iOS operating systems, and their respective application programming interfaces (APIs): Cocoa and Cocoa Touch prior to the introduction of Swift.

• The programming language Objective-C was originally developed in the early 1980s. It was selected as the main language used by NeXT for its NeXTSTEP operating system, from which OS X and iOS are derived.[3] Portable Objective-C programs that do not use the Cocoa or Cocoa Touch libraries, or those using parts that may be ported or reimplemented for other systems, can also be compiled for any system supported by GNU Compiler Collection (GCC) or Clang.

• Objective-C source code \'implementation\' program files usually have .m filename extensions, while Objective-C \'header/interface\' files have .h extensions, the same as C header files. Objective-C++ files are denoted with a .mm file extension.

• At the 2006 Worldwide Developers Conference, Apple announced the release of \"Objective-C 2.0,\" a revision of the Objective-C language to include \"modern garbage collection, syntax enhancements, runtime performance improvements, and 64-bit support\". Mac OS X v10.5, released in October 2007, included an Objective-C 2.0 compiler. GCC 4.6supports many new Objective-C features, such as declared and synthesized properties, dot syntax, fast enumeration, optional protocol methods, method/protocol/class attributes, class extensions and a new GNU Objective-C runtime API.




 Project Management

2.1 Project Planning and scheduling

2.1.1 Project Planning  

• Project planning is part of project management, which relates to the use of schedules such as Gantt charts to plan and subsequently report progress within the project environment.

• Initially, the project scope is defined and the appropriate methods for completing the project are determined. Following this step, the durations for the various tasks necessary to complete the work are listed and grouped into a work breakdown structure.

• Project planning is often used to organize different areas of a project, including project plans, workloads and the management of teams and individuals.

2.1.2   Project Scheduling

• Project Scheduling is the culmination of a planning activity that is primary component of software project management.

• When combined with estimation methods and risk analysis, scheduling, establishes a road map for the project management.  

• Scheduling begins with the process composition.  The characteristics of the project are used to adapt an appropriate task set for the work to be done.  

• The task network is used to compute the critical project path, a time line chart and a variety of project information.  

2.2 Project Development Approach  

The activities we followed for this project is listed below:

• Planning the work or objectives.

• Analysis & Design of objectives

• Analysis & Design of objectives

• Allocation of resources

• Organizing the work  

• Database Designing

• Form Design the Process Paradigm we used for our project is Incremental Model.

• The Incremental Software Process Model

• The Incremental Model combines elements of the linear sequential model with the iterative philosophy of prototyping. The incremental model applies linear sequences in a staged fashion as calendar time progresses.

• Each linear sequence produces a deliverable “increment” of the software. For example, word processing software developed using the incremental paradigm might deliver basic file management, editing and document production functions in the first increment; more sophisticated editing and document production capabilities in the second increment; spelling and grammar checking in the third increment; and advanced page layout capability in the fourth increment

• It should be noted that the process flow for any increment can incorporate the prototyping paradigm

• When an incremental model is used, the first increment is often a core product. That is, basic requirements are addressed, but many supplementary features remain undelivered.

• The core product is used by the customer. As a result of use and/or evaluation, a plan is developed for the next increment. The plan addresses the modification of the core product to better meet the needs of the customer and the delivery of additional features and functionality.

• This process is repeated following the delivery of each increment, until the complete product is produced.

• The Incremental process model, like prototyping and other evolution approaches, is iterative in nature.

• But unlike prototyping, the incremental model focuses on the delivery of an operational product with each increment.   

• Early increments are stripped down versions of the final product, but they do provide capability that serves the user and also provide a platform for evaluation by the user.

2.3 Project Plan

2.3.1 Milestone and Deliverables

In this project, we went through Module Wise Completion. First we did analysis of first module; we went through all the requirements for first module that is analyzing the requirements.

By this analysis we decided field of all the tables of the Module. Then we will start Database Design.

• After completing it we will start with the design of all of this module. Then we will do coding, validations and testing.

• After completing the first module we will start the same procedure for the another module.

• After that we will complete the syncing between front end and backend. Between this we will do settings of UI e.g. Change theme, change background color of the main screen etc.

• There will be continuous interaction with the application which would tell us if there is any bug or something is not right.

•When we will complete whole project we will start testing the whole project for final verification.

• Then we will start documentation of our project.

•A milestone would be an end point of software process life cycle with user satisfaction.

2.3.2 Roles and Responsibilities






3.1 User Characteristics:

It describes the type of user which deals with the applications. Basically, this application has two types of users as given below:

1. Administrator

2. User

1. Administrator:

 Responsibility of administrator is to manage the application database and update the data in database regularly. For e.g. manage the data of new users.

2. User

 Once the portal being tested and being uploaded then after customer (or end user) will use this application. User is the main reason for which this application is being built. The end user can easily interact with different people on this app having interests in food.

3.2 Hardware and Software Characteristics:

Hardware Requirements:

• Minimum 2.27Ghz processor

• RAM: 2GB minimum Software Requirements:

• Xcode compatible system

Hardware requirement for Xcode IDE

• Minimum 2.0 GHz processor

• Minimum 2GB of RAM

• 100GB free space in Hard Disk storage

Software requirement for iOS development

• Xcode

• SQLite

• NetBeans   

3.3 Constraints:

3.3.1Regulatory Policies:

• Regulatory Policies or mandates, limit the discretion of individual and agencies, or otherwise compel certain types of behavior.  

• These policies are generally thought to be best applied when good behavior can be easily defined and bad behavior can be easily regulated and punished through fine and sanctions. 3.3.2

Hardware Limitation

• The smooth functionality of the portal mainly depends on the speed of hardware and then on speed of the internet.  

• It is always advisable to be update as far as hardware is concerned. The hardware limitation occurs if the user is still using a very low MHz processor or a RAM or less than 128Mb.

  • This will generally reduce the portal and also the use will waste a lot of useful time, energy and resource.





4.1 Study of Current System

Current systems mostly require internet connection or gps enabled all the time but our application will take permission from user once while installing which can be configured later by user .user can control his/her phone using his text commands and password from any phone Regardless of phone model. This makes us superior than any other app in the market.

4.2 Requirement of this System

We are developing phone finder app which is one of its kind. It has more researched criteria which makes it more reliable and robust than any other app in the market.

 There are many phone finder apps but they all lack something in them and we have covered those loopholes and came up with better solution for reliability and user ease.

4.2.1 Functional Requirement:

User Requirement:

• User who uses this app should know how to operate the iOS device. Because the app has the same look and features like whole software is menu driven.

• Just click and corresponding thin from menu of hyperlink will be opened.

Identification of functional requirement:

• The high level functional requirement often needs to be identified from an informal problem description document or from a conceptual understanding of the problem.

• Each high level requirement characterizes away of system usage by some users to perform some meaningful piece of work.

Documentation of functional requirement:

• For documenting the functional requirement we need to specify the set of functionalities supported by the system.

• A function can be identified the state at which the data to input to the system, its input data domain, the output data domain, and the type of possessing to be carried out on the input data to obtain the output data.

4.2.2 Nonfunctional requirement:


• The interface should use terms and concepts, which are drawn from the experience of people who will make most use of the system.


•The app must provide easy and fast access without consuming more time.


• User should never be surprised by the behavior of the system and it should also provide meaningful feedback when error occurs so that user can recover from the error.


• The user should require that data are obtained from database and stored in database must be accurate.


• The user wants the data stored in database must be secured and cannot be accessed by unauthorized user.


• User wants that the system should be maintained easily means that if there are some changes required in the system that can be done easily.

4.3 Feasibility Study

• Feasibility is the measure of how beneficial the development of information system will be to an organization.

• The feasibility analysis is categorized under four different types.

1. Operational Feasibility

2. Technical Feasibility

3. Schedule Feasibility

4. Economic Feasibility

1. Operational Feasibility:

• The System is to be developed for any user who wants to use it. We want our system user friendly and easy to use.

• The administrator also may be non-technical, so the user interface will be designed in such a way that it gets comfortable for non-technical person to operate easily.

2. Technical Feasibility:

• It is a partially measurement of specific technical solution and the availability of technical resorts and expertise.

• The analyst must find out whether the current technical resources, which are available in the system is capable of handling the job.

• If not, then the analyst with the help of developer should confirm whether the technology is available and capable or not.

Better Considering:

• Here we have to consider those tools which are required for developing the project.

• As far as basic knowledge concerned we have studied basic of Java and SQL.

3. Schedule Feasibility:

• Schedule feasibility corresponds to whether sufficient time is available to complete the project.

Factor considered:

• Schedule of the project

• Time by which project has to be completed

• Reporting period

4. Economic feasibility:

• Economic feasibility is a measure of cost effectiveness of a project or solution.

• For declaring that the system is economically feasible, the benefits from the project should exceed or at least to the equal to the cost of development.

4.4 Requirement Validation:

• Requirement validation examines this specification to ensure that all the system requirements have been stated unambiguously.

• These inconsistent, error have been detected and corrected and the work products confirmed to the standard.

• Source of the requirement are identified, final Statement of requirement has been examined by original source.

• Requirements related to main requirements are founds.

• Requirements are clarifying stated and are not misinterpreted.

• All sources of requirements are covered to get a maximum requirement.

All method of finding requirements is applied.

4.5 Function of the System:

4.5.1 Use-Case:

• In software and systems engineering, a use case is a list of steps, typically defining interactions between actor and a system, to achieve a goal.  

• The actor can be a human, an external system, or time.

• In systems engineering, use cases are used at a higher level than within software engineering, often representing missions or stakeholder goals.  

• The detailed requirements may then be captured in Systems Modeling Language or as contractual statements.

• As an important requirement technique, use cases have been widely used in modern software engineering over the last two decades.  

• Use case driven development is a key characteristic of process models and frameworks.  • With its iterative and evolutionary nature, use case is also a good fit for agile development.

[Figure 4.1 Use-Case User]

[Figure 4.2 Use-Case Admin]

4.5.2 Activity Diagram:

[Figure 4.3 Activity Diagram –User]

[Figure 4.4 Activity Diagram –Admin]

4.5.3 Sequence Diagram:

• The well-known Message Sequence Chart technique has been incorporated into the Unified Modeling Language (UML) diagram under the name of Sequence Diagram.   

• A sequence diagram shows, as parallel vertical lines, different processes or objects that live simultaneously, and, as horizontal arrows, the messages exchanged between them, in the order in which they occur.  

•  This allows the specification of simple runtime scenarios in a graphical manner.  

• The well-known Message Sequence Chart technique has been incorporated into the Unified Modeling Language (UML) diagram under the name of Sequence Diagram. A sequence diagram shows, as parallel vertical lines, different processes or objects that live simultaneously, and, as horizontal arrows, the messages exchanged between them, in the order in which they occur. This allows the specification of simple runtime scenarios in a graphical manner.

[Figure 4.5 Sequence Diagram –User]

4.6 Data Modeling:

4.6.1 E-R Diagram:

• In software engineering, an entity–relationship model (ER model) is a data model for describing the data or information aspects of a business domain or its process requirements, in an abstract way that lends itself to ultimately being implemented in a database such as a relational database.  

• The main components of ER models are entities and the relationships that can exist among them, and databases.  

• An entity-relationship model is a systematic way of describing and defining a business process.  

• The process is modeled as components (entities) that are linked with each other by relationships that express the dependencies and requirements between them, such as: one building may be divided into zero or more apartments, but one apartment can only be located in one building. Entities may have various properties (attributes) that characterize them.

•  Diagrams created to represent these entities, attributes, and relationships graphically are called entity–relationship diagrams.

[Figure 4.6 E-R Diagram]

4.6.2 DFD

Fig: DFD diagram

4.7 Main Modules of New System

4.8 Justification:

• Java is best open source programming language to develop web application for small and large enterprise with portable implementation.

 • MySQL is also best open source database engine to work.

 • Combination of both will give great web application as output.

...(download the rest of the essay above)

About this essay:

This essay was submitted to us by a student in order to help you with your studies.

If you use part of this page in your own work, you need to provide a citation, as follows:

Essay Sauce, . Available from:< > [Accessed 17.02.20].