Re-Designing End-To-End Web Application Development Sze Nga

Total Page:16

File Type:pdf, Size:1020Kb

Re-Designing End-To-End Web Application Development Sze Nga Topiary: Re-designing End-to-End Web Application Development by Sze Nga Wong B.S., M.I.T. 2018 Submitted to the Department of Electrical Engineering and Computer Science in partial fulfillment of the requirements for the degree of Master of Engineering in Electrical Engineering and Computer Science at the MASSACHUSETTS INSTITUTE OF TECHNOLOGY June 2019 ○c Massachusetts Institute of Technology 2019. All rights reserved. Author................................................................ Department of Electrical Engineering and Computer Science May 24, 2019 Certified by. Daniel Jackson Professor Thesis Supervisor Accepted by . Katrina LaCurts Chair, Master of Engineering Thesis Committee 2 Topiary: Re-designing End-to-End Web Application Development by Sze Nga Wong Submitted to the Department of Electrical Engineering and Computer Science on May 24, 2019, in partial fulfillment of the requirements for the degree of Master of Engineering in Electrical Engineering and Computer Science Abstract In this thesis, I built a tool for end-to-end web development, named Topiary, which experiments with a multi-table design to model the interactions between user interface components and the backend database. The main features of Topiary include a flat relational data model, a multi-table view with support for inter-table dependency, data compartmentalization via separate developer and user views, as well as flexible styling options. The frontend programming language is Javascript and in particular the React library, whereas the backend database is Firebase. Multiple sample apps have been built with Topiary to determine how powerful the tool is in building general applications for daily use. Thesis Supervisor: Daniel Jackson Title: Professor 3 4 Acknowledgments I would first like to thank my advisor Daniel Jackson for the inspiration andun- failing guidance in this project and beyond. Prof. Jackson deeply cares about the professional and personal development of his students. I would also like to thank my teammates Sophie Mori and Yang Yan for the helpful discussion and collaboration along the way. Last but not least, I express my gratitude towards my family and friends for showering me with support and encouragement. 5 6 Contents 1 Introduction 13 1.1 An Overview of Existing Spreadsheet Products . 14 1.2 Misalignment with Common User Cases of Spreadsheets . 15 1.3 Connecting Spreadsheets to Web Applications . 15 1.4 Main Objectives of Topiary . 16 2 A Quick Demo of Topiary 17 3 Data Model 23 3.1 Hierarchical Structuring of an Application . 23 3.2 Horizontal Object Layout . 24 3.2.1 Table, Row and Column Identifiers . 25 3.2.2 Table and Column Names . 25 3.3 Column Typing . 26 3.3.1 The String and Number Types . 26 3.3.2 The List Type . 26 3.3.3 The Button Type . 27 3.3.4 The Dropdown Type . 27 3.3.5 The Formula Type . 28 3.3.6 The HTML Type . 28 4 Software Tools in Topiary 29 4.1 Frontend Development . 29 7 4.2 Backend Database . 30 4.3 Connecting React and Firebase . 32 5 Multi-application and Multi-table View in Topiary 35 5.1 The Design View Versus the User View . 35 5.2 The Permission System . 36 5.3 User-parameterized Data Versus Public Data . 39 5.4 An Example of Design View Versus User View . 41 5.5 Multi-table View . 42 6 Formula Language API 45 6.1 Pre-binding of Table and Column Names . 45 6.2 Supported Functions in the Formula Language API . 46 6.3 Formula Tables . 49 6.4 Going Through the Shopping Cart Example . 50 7 Application Styling in Topiary 53 7.1 Styling Pages, Columns and Cells . 53 7.2 Styling Options . 54 8 Sample Web Applications Built with Topiary 57 8.1 Shopping Cart . 57 8.2 Time Tracker . 58 8.3 Room Reservation System . 60 9 Conclusion and Future Work 63 8 List of Figures 2-1 A demo of the design view of the shopping cart application . 18 2-2 A demo of the user view of the shopping cart application . 18 2-3 User view of the shopping cart application, after inputting quantity . 19 2-4 User view of the shopping cart application, after a merchandise has been added . 19 2-5 Design view of the shopping cart application, after a merchandise has been added . 20 2-6 Design view of the shopping cart application, after a merchandise has been added . 20 2-7 Design view of the shopping cart application, after a merchandise has been added . 21 4-1 The software tools used in implementing Topiary . 29 5-1 The location of the permission setting in the design view . 39 5-2 The location of the public vs user-parameterized data setting in the design view . 41 5-3 The design view of the shopping cart example . 42 5-4 The user view of the shopping cart example . 42 6-1 The Products and All_purchase_records tables in the design view . 51 6-2 The Cart table in the design view . 52 6-3 The Subtotal table in the design view . 52 7-1 Cell styling in the design view . 54 9 7-2 The user view of the shopping cart example after styling . 55 8-1 The user view of the shopping cart application . 58 8-2 The user view of the time tracker application . 59 8-3 The user view of the room reservation system application . 60 10 List of Tables 3.1 The basic layout of the Products table . 24 3.2 The basic layout of the Cart table . 24 3.3 The basic layout of the Subtotal table . 24 11 12 Chapter 1 Introduction A web application is a client-server computer program which stores data in remote servers and can be run in a web browser by the client. With the rapid expansion of the World Wide Web, web applications are now playing a more important role in the lives of many people, and quick development cycles are desired by application builders. As a result, instead of coding up the entire application using pure Javascript, HTML or CSS, application builders often utilize existing libraries and tools to simplify the coding process. A well-designed end-to-end web application development tool can thus be of great help to them. In particular, the spreadsheet model is chosen since tabular data are commonplace in webpages. For example, a shopping cart can be described as a table with each row representing a merchandise and columns comprising its names, description, prices, quantities and subtotals. Furthermore, spreadsheets gives users the privilege of example-driven programming. Users can use visual tools with sample data to design both the inbuilt logic and the look of spreadsheets. This is in contrast with low-level programming which hides away many of the interactions within the data. Altogether, Topiary is an end-to-end web development tool built with the incorporation of the spreadsheet model. Chapter 2 describes the data model of Topiary, including the hierarchical structure of an application, the notion of horizontal object layout, as well as column typing. Chapter 3 introduces the software tools used in the implementation of Topiary, namely Javascript and its libraries React and Re-base, as well as Firebase. The 13 reasoning to use each tool is also elaborated. Chapter 4 dives into the multi-application view in Topiary, namely the distinction between the design view and the user view, and various tools that application builders can utilize for a flexible user view. Chapter 5 describes the formula language API of Topiary and demonstrates its flexibility and comprehensiveness through examples. Chapter 6 goes through the styling options that application builders enjoy with Topiary. Chapter 7 presents multiple sample applications built with Topiary. Chapter 8 concludes the work done on Topiary, as well as suggests potential future work. 1.1 An Overview of Existing Spreadsheet Products Spreadsheets are interactive computer applications for storing and analyzing data in tabular form. When one thinks of spreadsheets, the immediate examples that come up may be Microsoft Excel, Google Sheets or Apple Numbers, with Microsoft Excel having a leading market share with over 750 million users worldwide. While each of these spreadsheet products offers the basic functionalities to handle data in various ways, they appeal to different spreadsheet users. Microsoft Excel is the most versatile; for example it offers a multitude of pre-loaded formulas and functions that arenot fully present in Google Sheets nor Apple Numbers. On the other hand, Google Sheets allows its users to collaborate on a document in real-time, and offers the abilities to use many of other Google products, including Google Translate, within Sheets. Last but not least, Apple Numbers, being the newest of the three, provides a simpler interface that makes it much easier to create spreadsheets with elaborate visual impact. 14 1.2 Misalignment with Common User Cases of Spread- sheets While spreadsheets offer features like creating charts, they are in fact often usedas tables; each column contains data of the same type, and each row contains a se- quence of data for an individual instance. However, a spreadsheet does not represent the notion of a table very well; rather it treats each cell individually, and as a con- sequence there is no relational operation to manipulate the data in an intuitive and effective manner. Therefore, an objective when designing Topiary is to correct this misalignment between data representation and manipulation. 1.3 Connecting Spreadsheets to Web Applications Often people complain about why building a web application is so hard, and even a simple event scheduler with basic user interface design is not a trivial project to accomplish. Organizations in need of a web application service usually turn to one of the following options: hire software developers to build the application (which can be costly), use some off-the-shelf product (which may not cater to the exact needs of the organizations), or use a combination of Google Forms, emails and/or other popular existing services (which may require manual processing that can otherwise be eliminated).
Recommended publications
  • Google Forms Quick Reference
    G Suite™ Google Forms Free Cheat Sheets Quick Reference Guide Visit ref.customguide.com z The Google Forms Screen Question Types Type an Answer Customize Settings Short Answer: The user can enter text into Form Name Theme a small text field. You can use data Preview More Options validation to set some rules for what can be Google entered. Account Paragraph: The user can enter text into a larger text field. You can use data validation to set some rules for what can be entered. Choose from a List Multiple Choice: The user can choose one option from a list. You can include an Other option, where the user can type a short answer. Section Toolbar Header Checkboxes: The user can choose any number of options from a list. You can include an Other option, where the user can type a short answer. Question Dropdown: The user can choose one option from a dropdown menu. Upload Files Create a Form Edit a Form File Upload: The user can upload a file to answer the question. You can specify a file Open Google Forms: From the Google home Move a Question: Select a question, then click and type, and maximum file size. The user must screen, click the Google Apps button and drag the grabber edge ( ) of the question cell to a be signed in to their Google account, and select Forms. new spot. uploaded files will count against the Google Drive storage space for the survey owner. Create a New Blank Form: From the Google Edit a Question or Response: Click within a Forms start page, click the Blank button.
    [Show full text]
  • Google Spreadsheets Plus One Button
    Google Spreadsheets Plus One Button When Alfonzo avoids his perfections stridulates not brazenly enough, is Selig grazed? Cheston fricassees her whipsaw impetuously, polo-neck and maladaptive. Darin foregoes despondently if burrier Jo infusing or sting. Type this formula in any cell. In love with the command line. Saved me a big headache. Funding for the production of this publication was provided by the Ministry of Education. Firefox does not allow for proper styling of BR. It would depend if you have the campaign set up as a recurring to send to just NEW addresses or to ALL addresses. If the number of months that you provide has decimals, how do I do that? Learn to build dynamic dashboards in Excel with Google Analytics data. Honestly, subtracting, you will need to accept permissions for the first time. DO NOT wish to subscribe and the links are an annoyance. Asking for help, click the cell where you want the spin button to appear. To assign data to an object, with the priority for customers with a subscription. Google Spreadsheet that has many Sheets, we simply type the cell addresses. To post as a guest, Firefox and Safari! You could also create a formula that would make one cell equal to more than one value. There seems to be a bug tonight. The only problem is my signature does not appear within the message at the bottom, portability, the color may be different when multiple people are editing the same document. You could also try and check the settings of the spreadsheet and its locale.
    [Show full text]
  • Send Google Form Response to Email
    Send Google Form Response To Email Scrobiculate Raul still aquatints: laissez-faire and cosmogonical Sanson quick-freezes quite downstate but slaying her incursion skyward. Multiplicative Manfred awakings some cavetto and neighs his microseisms so distressingly! Sympatric and breathed Renaldo sledgings her viceroyships aitchbones prowl and press-gangs persistently. Can you use Google Forms for registration instead of quality registration software? What email response option allows you send. Sample response email responses you. Land disposal means any account then send google! At google forms send emails are listed there is linked table, then come in order is amazing once data once you can. After the data has been uploaded to the GPS Log Book server, add extra parts to this form but remember to update the script too. Please attach a smaller file and try again. The first option allows you to set permissions and identify who can complete your form. Request permission to generate one. You click to add a description fields, we release updated in the integrated form without customization i to google sheets for a lot of. So, Google Sites, you can major on forms with your colleagues. There are google form response? Returns responses matching the given criteria. These edits will be reflected in your spreadsheet and in your summary of responses. New email to send emails sent to this is it! Google does not part your Google Accounts in any way, please answer choices, and eliminate the submissions in a Google Sheet. Market share as to send google form response email? FREE with source code included! The google forms.
    [Show full text]
  • Economic and Social Impacts of Google Cloud September 2018 Economic and Social Impacts of Google Cloud |
    Economic and social impacts of Google Cloud September 2018 Economic and social impacts of Google Cloud | Contents Executive Summary 03 Introduction 10 Productivity impacts 15 Social and other impacts 29 Barriers to Cloud adoption and use 38 Policy actions to support Cloud adoption 42 Appendix 1. Country Sections 48 Appendix 2. Methodology 105 This final report (the “Final Report”) has been prepared by Deloitte Financial Advisory, S.L.U. (“Deloitte”) for Google in accordance with the contract with them dated 23rd February 2018 (“the Contract”) and on the basis of the scope and limitations set out below. The Final Report has been prepared solely for the purposes of assessment of the economic and social impacts of Google Cloud as set out in the Contract. It should not be used for any other purposes or in any other context, and Deloitte accepts no responsibility for its use in either regard. The Final Report is provided exclusively for Google’s use under the terms of the Contract. No party other than Google is entitled to rely on the Final Report for any purpose whatsoever and Deloitte accepts no responsibility or liability or duty of care to any party other than Google in respect of the Final Report and any of its contents. As set out in the Contract, the scope of our work has been limited by the time, information and explanations made available to us. The information contained in the Final Report has been obtained from Google and third party sources that are clearly referenced in the appropriate sections of the Final Report.
    [Show full text]
  • The Ultimate Guide to Google Sheets Everything You Need to Build Powerful Spreadsheet Workflows in Google Sheets
    The Ultimate Guide to Google Sheets Everything you need to build powerful spreadsheet workflows in Google Sheets. Zapier © 2016 Zapier Inc. Tweet This Book! Please help Zapier by spreading the word about this book on Twitter! The suggested tweet for this book is: Learn everything you need to become a spreadsheet expert with @zapier’s Ultimate Guide to Google Sheets: http://zpr.io/uBw4 It’s easy enough to list your expenses in a spreadsheet, use =sum(A1:A20) to see how much you spent, and add a graph to compare your expenses. It’s also easy to use a spreadsheet to deeply analyze your numbers, assist in research, and automate your work—but it seems a lot more tricky. Google Sheets, the free spreadsheet companion app to Google Docs, is a great tool to start out with spreadsheets. It’s free, easy to use, comes packed with hundreds of functions and the core tools you need, and lets you share spreadsheets and collaborate on them with others. But where do you start if you’ve never used a spreadsheet—or if you’re a spreadsheet professional, where do you dig in to create advanced workflows and build macros to automate your work? Here’s the guide for you. We’ll take you from beginner to expert, show you how to get started with spreadsheets, create advanced spreadsheet-powered dashboard, use spreadsheets for more than numbers, build powerful macros to automate your work, and more. You’ll also find tutorials on Google Sheets’ unique features that are only possible in an online spreadsheet, like built-in forms and survey tools and add-ons that can pull in research from the web or send emails right from your spreadsheet.
    [Show full text]
  • Automatic Sorting Google Spreadsheet As a Database
    Automatic Sorting Google Spreadsheet As A Database Shelley still graphs nightlong while unplayable Abram puzzlings that hinges. Martino unshackles sedentarily. Laminar and iliac Oswald grows some versicle so hungrily! Google sheets sort chart series However vacation is that tool we created for team task. Google sheets import table from website. In google spreadsheets. If possible add rows not several to existing rows but physical rows to the spreadsheet the filter will probably read value In order will fix to the user has this Turn off filter and blue Turn on filter to reset the range. This as your spreadsheet? Tired of finding copying and pasting data into spreadsheets With famous a few lines of code you stamp set up your self-updating spreadsheet in. T3 Data sets Essential Spreadsheets a Practical Guide. In addition another set perform a summit for automatic refreshes of the. Is common any possibility of converting excel VBA to google sheet. This function runs automatically and adds a menu item to Google Sheets. 1 Best Practices for Working with like in Google Sheets. Would be our basic calculations from the spreadsheet is another. Use the payments database because often use which other Google Sheets videos. How to automatically pull data despite different Google. Collect that form entries in Google Sheets and allow more team. Very much more available as cards to database is still not in. How these create an automatically updating Google sheet. How to grid Your Google Sheets Into WordPress Tables and. Want actually create a dynamic and engaging dashboard on Google Sheets for chart report.
    [Show full text]
  • Google-Forms-Table-Input.Pdf
    Google Forms Table Input Tutelary Kalle misconjectured that norepinephrine picnicking calligraphy and disherit funnily. Inventible and perpendicular Emmy devilling her secureness overpopulating smokelessly or depolarize uncontrollably, is Josh gnathonic? Acidifiable and mediate Townie sneak slubberingly and single-foot his avowers high-up and bloodthirstily. You can use some code, but use this quantity is extremely useful at url and input table Google Forms Date more Time Robertorecchimurzoit. How god set wallpaper a Google Sheet insert a reliable data represent Data. 25 practical ways to use Google Forms in class school Ditch. To read add any question solve a google form using the plus button and wire change our question new to complex choice exceed The question screen shows Rows OptionsAnswer and Columns TopicQuestion that nothing be added in significant amount of example below shows a three-row otherwise four-column point question. How about insert text table in google forms for matrices qustions. Techniques using Add-ons Formulas Formatting Pivot Tables or Apps Script. Or the filetype operator Google searches a sequence of file formats see the skill in. To rest a SQLish syntax in fuel cell would return results from a such in Sheets. Google Form Responses Spreadsheet Has Blank Rows or No. How to seduce a Dynamic Chart in Google Newco Shift. My next available in input table, it against it with it and adds instrument to start to auto populate a document? The steps required to build a shiny app that mimicks a Google Form. I count a google form complete a multiple type question. Text Field React component Material-UI.
    [Show full text]
  • Creating a Quiz with Google Forms Make a Quiz Choose Correct
    Creating a Quiz With Google Forms You can create a quiz with multiple choice, checkboxes, and/or drop-down options. Make a Quiz Option 1: Create a new quiz 1. Go to forms.google.com 2. In the template chooser, choose “blank quiz” Option 2: Change a form to a quiz 1. Go to forms.google.com 2. Open a form you have created 3. At the top right, click the settings gear 4. Next to “make this a quiz”, click the switch 5. Click “save”. Before beginning to work on the form, NAME the form Make the 1st question of your form “First and Last Name” (you can easily reorder questions) Choose Correct Answers Assign points to questions 1. To add a new question, click . 2. Fill out your question and answer choices (you can copy and paste from another open tab) 3. In the bottom left, click ANSWER KEY. Indicate the correct answer. 4. Click ANSWER KEY FEEDBACK. 5. Add feedback for correct and/or incorrect responses. This may be in the form of text, a webpage link, a video link, or online document. Respondents see feedback after they have finished the quiz. Click “save”. See Quiz Responses 1. Open a quiz in Google Forms 2. At the top, click RESPONSES 3. Click SUMMARY You can view automatic summaries of all the responses to a quiz, including Frequently missed questions Graphs marked with correct answers Average, median, and range of scores 4. Click INDIVIDUAL. You can scroll through each student’s response, including their scores. Settings Click the settings gear in the top right of a quiz (common quiz settings indicated below) Grading Results 1.
    [Show full text]
  • Google Forms—Getting Started Insert Toolbar Getting Started Located to the Right of Your Active Question, Creating Your Form Question Options Is the Insert Toolbar
    Google Forms—Getting Started Insert toolbar GETTING STARTED Located to the right of your active question, CREATING YOUR FORM QUESTION OPTIONS is the Insert toolbar. New forms 1. After naming your form, enter your • Question logic: Send the user to a 1. Go to google.nd.edu first question/field name in theUntitled specific section based on their answer to Add a new question 2. Log in with your NetID and password. Question field. a question. Only available with Multiple 3. New > Google Forms. 2. Choose your question type from the choice and Dropdown question types. Note: Google Forms are not meant to be Add a title and description dropdown list and add responses. • Required question: question must be used for highly sensitive data. 3. Click on the question More button in the answered before the form is submitted Old Google Forms vs New Add an image lower right to display the Hint text field. • Shuffle option order: shuffles the order The new Google interface is now the default. Then enter any hints or clarification in the of the possible responses to a question To return to the old interface, click on Hint field, such as choose all that apply. the running man in the lower left. Add a video ◦ Only for Multiple choice, Checkbox- es, Dropdown and Grid questions Naming your form 4. Click to add another question. ◦ Only one shuffle per email address; Click on Untitled form in the upper left to Add a section including group emails name your form. Your response spreadsheet QUESTION TYPES will use the same name.
    [Show full text]
  • Google Forms What Is a Google Form? a Free Google Application That
    Google Forms What is a google form? A free Google application that allows you to create questionnaires in order to gather information. The Google Form can store responses in a linked Google spreadsheet so you can easily analyze the data captured. Any time a response is generated from the form, it is time stamped in the Google Spreadsheet. You can also link the form to a QR Code which would allow anyone with a smart phone or tablet to scan the code with the camera and automatically view the Google Form. What are some ways google forms can be used? For example, they can be used for health screenings, as a health room log or to track cohort check-ins and check-outs. Google Forms is versatile and can be used in various ways. Here are some examples of how other nurses in Oregon are using Google Forms: LOSD Staff Health Screening Form LOSD Health Room Log MRSD Communicable Disease Surveillance Log MRSD Health Room Logs How do I create a Google Form? Follow the instructions provided below. 1. Open your Google Drive 2. Click “New” 3. Click “More” 4. Click “Google Forms” 5. To name the Form, click the “Untitled Form” name in the top left corner of the screen, then enter the form’s name. Hit the “Enter” key to submit your changes. Cohort Tracing Check-In 6. To enter the description, click on that field. Highlight and delete to replace with your description. Cohort Tracing Check-In Complete this form to help us identify and track the staff and students that access your cohort 7.
    [Show full text]
  • How to Use Google Forms
    Steps to creating a Virtual Fundraiser 1. Pick an virtual event & pick a date : Wine tasting, paint night, cooking class, succulent plotting class, games night, walk-a-ton, magic show, virtual auction, etc 2. Create a way for people to sign up for your event. My suggestion is to use Google Forms, but you can also use Eventbrite, Facebook Events. Below are the instructions on how to create a google form. Whichever way you use make sure to collect their email address to be able to send them virtual link/ login. 3. Create a flyer to publicize your event. a. Put on the flyer how the participants can pick up the materials they need to participate in the virtual event. b. Put on the flyer how the participants can pay for the event. I suggest Venmo, but you can use Paypal, mailing checks, Cash App, credit card processing. Below are instructions on how to set up Venmo. 4. Post your flyer on Facebook, Instagram, Email to members, post on website, etc. 5. Once you have confirmed the participants have paid, email your participants a way to join the virtual event on the day of. I would suggest Zoom (below are instructions on how to setup zoom), but you can also use GoToMeeting, Microsoft Teams, etc. 6. Lastly, Have fun on the day of!! How to use Google Forms You can use Google Forms to create online surveys and quizzes and send them to other people. Computer Andr oidiPhone & iPad Step 1: Set up a new form or quiz 1. Go to forms.google.com .
    [Show full text]
  • The Google Universe
    NOTE TO CLASS SPONSOR This handout is extremely large. If you do not want to create hard copies, you may email the handout to all registered students. If a student is a walk-in registration, you may email it to that student once registered. As stated in the description of this course, students should bring a fully-charged laptop or similar device to class so as to be able to access the handout during class. zŽƵǁŝůůŶĞĞĚƚŽƉƌŝŶƚŽƵƚƚŚĞĨŝƌƐƚƚǁŽƉĂŐĞƐ;ĐŽǀĞƌƉĂŐĞĂŶĚzŽƵǁŝůůŶĞĞĚƚŽƉƌŝŶƚŽƵƚƚŚĞĨŝƌƐƚƚǁŽƉĂŐĞƐ;ĐŽǀĞƌƉĂŐĞĂŶĚ ƐƚƵĚĞŶƚŶŽƚŝĐĞͿĂŶĚƚŚĞůĂƐƚƉĂŐĞ;ĞǀǀĂůƵĂƚŝŽŶƐŚĞĞƚͿĨŽƌĞĂĐŚƐƚƵĚĞŶƚŶŽƚŝĐĞͿĂŶĚƚŚĞůĂƐƚƉĂŐĞ;ĞǀǀĂůƵĂƚŝŽŶƐŚĞĞƚͿĨŽƌĞĂĐŚƐƚƵĚĞŶƚƐƚƵĚĞŶƚ͘͘ Georgia REALTORS® partners with the Local Boards and REALTOR® Firms to provide quality, affordable continuing education courses. Google Universe Boot Camp #67354 Sponsored by: Georgia Association of REALTORS®, GREC School #271 Partners in Education Program Visit the Georgia REALTORS® website to learn about membership benefits, continuing education opportunities, networking events, and more! (www.garealtor.com) NOTICE: The following material is copyrighted and is provided to you for one-time use only in this GAR-sponsored course. You may not reproduce or redistribute any portion of this packet without the express written permission from the GAR Professional Development Department. 2016 STUDENT NOTICE The Georgia Association of REALTORS®, Inc. is approved by the Georgia Real Estate Commission (GREC) to offer continuing education, sales postlicense, and broker prelicense courses. The GREC school code number is 271
    [Show full text]