Skip to content

mnorelli/project-2

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project #2: Personal Geography

Overview

Sharing parts of the world we have been to is a way to compare notes about the lifeways of people far away and to bring peopl ecloser together based on shared experiences.

Personal Geography is an app to track places visited by a single person, and store descriptions and photos. It will show a map for ech place visited and combine all places into a single map.

User Stories

  • A user will be able to see on the first page all the entered locations, descriptions and photos with a map in Jumbotron style showing points indicating those places.

  • A user can either create a new location by clicking a map which will autofill the name and location field or click a "new location" button, fill in name, location, details, and photos, which will then show on the map.

  • The user's choice of location will also add a small thumbnail map, zoomed in to the described location

  • A user can click on a map point or a button in the text list to bring up a form to change an entered location

Front page wireframe

Data Model

The set of data will be called Places, and each place has:

  • a Title, as a string
  • a Location, as a string containing a city and country
  • a Photo, as a string containing a URL
  • a Description, as a long string

Technology Used

  • HTML/CSS
  • Bootstrap
  • Ajax
  • Ruby
  • Sinatra

Approach Taken

This project contains technology I'm still learning, so I'm taking the advice of consultants to work on this in separate parts before wiring it all up.

I will start with testing bits of MapBox API to see if I can understand how to get what I want and affect maps with user input. This part will be time-boxed to avoid working too long on interesting side issues without making progress on the working app.

Next, I'll create a model and test basic CRUD steps in irb/pry, outside of the app to start

Then, I'll build the functional code to make sure things are representing on the screen as expected, again outside of the app.

Then, I'll add the data model and try to affect it with page clicks and submissions.

Then, try to get it to host on Heroku.

Then, I'll wire in the maps.

Then, try to get it to host on Heroku.

Installation Instructions

It's a web app! Click here.

Unsolved Problems


Project Must-Haves

  • a Sinatra app
  • exercise creativity on this project
  • sketch some wireframes before you start
  • write user stories
  • keep things small
  • focus on mastering the fundamentals
  • avoid scope creep/feature creep

Technical Requirements

Your app must:

  • Have one model
  • Have complete RESTful routes for your resource (model) with GET, POST, PUT, PATCH, and DELETE.
  • Use ActiveRecord to create a database table structure
  • semantically clean HTML, ERB and CSS
  • Be deployed online and accessible to the public.

Your app may:

  • Use AJAX either to make a request to your own backend to CRUD data without a page reload OR to hit an external API. Or both!
  • Have more than one model

Necessary Deliverables

  • working hosted, full-stack application, built by you
  • A link to your hosted working app in the URL section of your Github repo
  • A git repository hosted on Github, frequent commits
  • This readme.md file
  • Wireframes of your app, hosted somewhere & linked in your readme
  • A link in your readme.md to the publically-accessible user stories you created

Suggested Ways to Get Started

  • Test your assumptions
  • Ask for help.
  • Begin with the end in mind.
  • Write throwaway code to solve short term problems.
  • Read the docs for whatever technologies you use.
  • Keep user stories small & focused on what a user cares about
  • Write pseudocode before you write actual code. ---

Useful Resources


Project Feedback + Evaluation

  • Project Workflow
    • user stories
    • wireframes
    • task tracking
    • ERDs
    • source control
  • Technical Requirements meet all
    • complex?
  • Creativity something of value
  • Code Quality:
    • spacing
    • modularity
    • semantic naming
    • comment your code
  • Deployment and Functionality at a public URL
    • free of errors and complete

About

[sinatra, ruby, active record, projects]

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 49.4%
  • JavaScript 33.2%
  • Ruby 14.1%
  • CSS 3.3%