Project 3 uses apache maven as its build system it


Project: Bear Maps, version 2.0

Introduction

This project was originally created by former TA Alan Yao (now at AirBNB). It is a web mapping application inspired by Alan's time on the Google Maps team and the OpenStreetMap project, from which the tile images and map feature data was downloaded. You are working with real-world mapping data here that is freely available - after you've finished this project, you can even extend your code to support a wider range of features. You will be writing the back end - the web server that powers the API that the front end makes requests to. The project 3 video playlist starts with an introductory video that should help you get started. The slides used in the project 3 video playlist are available here.

This project is a solo project. You should not work with a partner. One of our biggest goals for 61B is to develop your independence as a programmer, and this project is a great milestone for you to complete on your own before you go on to bigger and better things.

The point breakdown for this 75 point project are as follows: 50 points for Part I. 25 points for Parts II and III (exact distribution TBA). You can also earn 3 extra credit points for submitting to the extra credit autograder by Sunday 4/16/2017, which will cover only Part I. 10 gold points can be earned for completing Autocomplete.

By the end of this project, with some extra work, you can even host your application as a web app. More details will be provided at the end of this spec.

There is a reference version of the project solution running on Amazon AWS here. While we can't guarantee that the performance will be good, you'll likely get response times that are only slightly slower than your locally hosted version. Why? Because we're using Quilt to deploy the solution in such a way that all your requests will be load balanced across ~10 separate instances of BearMaps. That being said, they're still running on free instances, so it might slow up under high load. If you are experiencing a lot of latency, shrink your window. Your project cannot perform poorly though, and should have sub-0.5s response times, especially since you are hosting locally.

Meta Advice

This spec is not meant to be complete. Many design decisions are left to you, although with suggestions given. Many implementation details are not given; you are expected to read the entirety of the skeleton (which is well-commented or self-explanatory) and the javadoc to determine how to proceed. You will especially want to read all the constants defined.

However, the spec is written in a way so that you can proceed linearly down - that is, while each feature is partially dependent on the previous one, your design decisions, as long as they are generally reasonable, should not obstruct how you think about implementing the following parts. You are required to read the entire spec section before asking questions. If your question is answered in the spec, we will only direct you to the spec.

Getting the Skeleton Files

For this project we very strongly recommend using IntelliJ. If IntelliJ doesn't work on your computer, or is too slow, consider using IntelliJ on the lab machines. If you insist, you can also use the command-line / terminal on your personal machine as further described in Addendum for Terminal users.

Pull the skeleton using the command git pull skeleton master. Then, please download this zip file; it is the image tile dataset. Unzip it into your proj3/ folder such that there is an img/ directory, with all the png files in it. There are around 50,000 files in this folder, so it might take a bit of time to unzip. Don't use the -f flag with GitHub for this project unless you're sure that you're not adding these .png files to your rebo as a result. If you don't know what we're talking about, the basic idea is that you shouldn't use -f unless you have a really good reason.

Project 3 uses Apache Maven as its build system; it integrates with IntelliJ. You will want to create a new IntelliJ project for project 3. In IntelliJ, go to New -> Project from Existing Sources. Then:

1. Select your proj3 folder, press next, and make sure to select "Import project from external model" and select Maven. Press next.

2. At the Import Project window, check: "Import Maven projects automatically".

3. Press next until the end.

4. It is possible that IntelliJ will not "mark" your folders correctly: Make sure to mark, if not done so already, thesrc/main/java directory as a sources root, the src/static directory as a sources root, and the src/test/java directory as a test sources root. To do this, right click on the folder in the explorer window (the tab on the left), and towards the bottom of the options you'll see "Mark Directory As".

5. Do not add the course javalib to your IntelliJ library. You will not need it and it will cause conflicts. This also means that you cannot use any libraries outside the Java standard library and the ones already included in the project. Doing so will immediately cause a compilation error on the autograder. Notably, we are not accommodating usage of the Princeton libraries as they are unnecessary.

Build the project, run MapServer.java and navigate your browser (Chrome preferred; errors in other browsers will not be supported) to localhost:4567. This should load up map.html; by default, there should be a blank map. You can also run MapServer.java and then open up src/static/page/map.html manually by right clicking and going to Open In Browser in IntelliJ. Once you've done this, you should see something like the window below, where the front end is patiently waiting on your back end (not yet implementing) to provide image data.

Assignment Files -

https://www.dropbox.com/s/6z9vhonc2j6biqr/Assignment%20Files.rar?dl=0

Request for Solution File

Ask an Expert for Answer!!
: Project 3 uses apache maven as its build system it
Reference No:- TGS02260767

Expected delivery within 24 Hours