Software Design Description (SDD) - CankayaUniversity/ceng-407-408-2021-2022-Restaurant-Reviews-According-To-Geographical-Location GitHub Wiki

1. Introduction

Software Design Description, is a document to detail implementation and design of the project in question and detailing it with visuals.

1.1. Purpose

This software design document provides information about the EATIE (Restaurant-Reviews-According-To-Geographical-Location) architecture and system design. The target audience of this document is customers who cannot decide what to eat and where to go. For better understanding, this SDD includes various diagrams of the project such as UML diagram, activity diagram and block diagram.

1.2. Overview

In the Introduction section, information was given about the purpose and design of our product. In the Approach section, the approach we will use while designing the product was highlighted. In the System Design section, the current class diagram, sequence diagram and flowcharts of the product were designed.

1.3. Definitions and Acronyms. Abbreviations

  • SDD: Software design document is a written description of the software product. Software design document is a document written and given by the software designer to guide the software developer team through the architecture of the software project.
  • UML: UML (Unified Modeling Language) is an emerging language for modeling business systems. Although it is generally used in the software industry, it is used by those who want to explain business systems, a process or any job with graphics.
  • DFD: Data flow diagram is a form of diagram that is closer to programming. The level system is used and as the level systems starting from zero increase, the detail is specified.
  • User: Any user character that is yet to register to the system.
  • Admin: The user character that supervised the system and a registered administration user.
  • Anonymous: A user who can use the system in a limited way without being a member of the system.
  • Database: The database where the registered users of the system are stored with their personal information.
  • Class Diagram: A modeling language that is used in the software development process.
  • IEEE: Institute of Electrics and Electronics Engineering
  • UML: Unified Modeling Language

1.4. References(Reference no 2-4 is added on 1/1/2022)

  1. http://cengproject.cankaya.edu.tr/wp-content/uploads/sites/10/2017/12/SDD-ieee-1016-2009.pdf
  2. https://pencil.evolus.vn
  3. https://app.diagrams.net
  4. https://lucid.app/documents#/documents?folder_id=home

2. Approach

The heart of the whole system is the database. Currently the system is only considered for term project. For large restaurants, performance considerations should be taken into account in terms of Hardware/Software capacity, page load time etc. In addition, vulnerabilities should be evaluated for large-scale systems. In the future this may also be available as a Mobile app and integrated in App stores.

There is a module that provides functionality for the Administrator only. It will not be available to any other users. Using a graphical interface, it will allow an Administrator to manage the menu that is displayed to users. Also, Administrator can add & delete restaurants and update restaurant information.

There are two types of users who can use this application. One is User and the other is Anonymous User. User can be able to create his/her new profile with its real information. If a user wants to rate a restaurant, he/she must have to log in with his own authentication. User can create his/her ID and make dynamic ratings of any restaurant.

A Google Maps map loaded with the Google Maps API. A list of restaurants on the right side of the page that are within the area displayed on the map. The Google Maps map will focus immediately on the user’s location. It shows restaurants on the map based on their GPS coordinates. Restaurants that are currently visible on the map will be displayed in list form. You will see the average reviews of each restaurant (ranging from 1 to 5 stars). When you click on a restaurant, the list of reviews will be shown. Also, it shows the Google Street View photo via the corresponding API! The map will be updated in real-time to show the relevant restaurants. Our visitors also want to share their opinions about restaurants! We will add a review part for an existing restaurant. For the moment, there are not many restaurants or reviews. Fortunately, Google Places offers an API to retrieve restaurants and reviews! We'll use the search API to find restaurants in a particular display area.

Briefly,

  • Admin can view/upload/replace/delete User, Anonymous User and Restaurant information.
  • Admin can view all the feedbacks published by the customers.
  • The User can log in to the system after submitting the registration information.
  • The User can search for restaurants based entirely by rating and restaurant type.
  • The User can can post descriptions about a particular food place.

For now, the language used to build this application is Java and on the client side, and the Oracle database on the back-end.

3. System Design

3.1. Class Diagram [3]

Diagram

3.2. Sequence Diagrams[2]

3.2.1. Admin

Admin

3.2.2. Anonymous

Anonymous

3.2.3. Logged_User

Logged_User

3.3. Flowcharts[2]

3.3.1. ShowRestaurants

ShowRestaurants

3.3.2. GiveReview

GiveRewiew

3.3.3. GivePointsToReviews

Pointing

3.3.4. AddingToBlackList

GaraListe

3.3.5. Sign-in

NewUser

3.3.6. Database Diagram[4]

Database

3.4. UI'S (If permission is not given delete)[2]

3.4.1. User Log_In

gir

3.4.2. New User

New

3.4.3. Show Restaurants in app

Goster

3.4.4. Show Reviews of Restaurant(For Logged User)

Uye

3.4.5. Show Reviews of Restaurant(For Anonymous User)

Anonim

3.4.6. New Review

NewUye

3.4.7. Show Restaurants in Map

Gosterbea

3.4.8. Create Map

Cızbea

4. Constraints (This part till finish is added on 1/1/2022)

4.1 Time

We got limited Time to Create this project so we will using 3 step to finish method(Which is just created by me that is dividing project to 3 major parts going step by step to completing them if it takes longer than it should have go past that step.);

-1st step is creating the general parts of project(Creating UI, Adding new user activating mail system etc..) which should take 1 week,

-2nd step is Adding details step which is Creating under layers of project(Update Reviews DB, Giving votes, calculating average, Banning user etc.) which should again take 1 week,

-3rd step is Completing the hardest part(which is Creating a map, Showing restaurants around user, etc...) and completing the project which should take around 2 weeks.

4.2. Performance

As our project is a mobile project that is going to run in Users phones our project's performance will be dependent on User's internet, and Android phone's Memory and Their Android version.

4.3. Application Constraints

-User can only use aproximately 5000 words when giving a review. Real value of word to be confirmed later.

-The maximum distance that a map can be drawed is approximately 20 kilometer. Real value of distance to be confirmed later.

4.4. Assumption and Dependencies

Assumption and Dependencies are written in the SRS file please check from there.