Giter Site home page Giter Site logo

ios-unit1-project's Introduction

Books

Overview

You will be building a project that spans the whole week. The format is a bit different than you're used to thus far in the course. The instructions for this project are more like a Sprint Challenge in that they are much more sparse than a normal project.

You are to treat this week as if you are building this application at a company and the instructor is your client. The project managers (including section lead) will be your main support throughout the week.

The main objective of this week is to develop the MVP feature set listed below using the technologies you have learned here at Lambda School thus far.

Instructions

This project is open-ended, meaning after you finish the requrements listed below, you will spend the remaining time implementing extra features below and/or you may implement your own feature(s) that you come up with. If you want to implement a feature of your own, run the idea through a PM or your section lead to have them approve it.

This project uses the Google Books API. Take the time now to read this page as it will explain many things including how the API works in general, some requirements in order to use it, its basic data structure, and the operations you can perform using it. The better you understand the API beforehand, the faster you will be able to use it efficiently.

Requirements

You must implement every one of these requirements in your application:

  • Your model object that represents a volume must have at the very least the following properties:
    • Its title
    • An image representing its cover
    • Your review of the book. This will not be a part of the API.
    • Whether you have read the book or not. This will not be a part of the API. We know there is a bookshelf pre-created to show the books you have read)
  • Search for volumes and display them to the user.
  • List all of your bookshelves
  • Insert, update, and delete volumes in a bookshelf. (On the API side)
  • Move books between bookshelves.
  • Bookshelf and volume information must be persisted using Core Data and synchronized with the API.

Extra Requirements

Note that once you have finished the requirements, you are not finished with the project. You are expected to implement extra features. You just have the liberty to choose which features you'd like to implement. The following are simply ideas that you could implement once you finish the requirements. Feel free to be creative with this though; if you have other ideas for features you'd like to implement, check with a PM (simply to make sure it's feasable) and have them approve it.

These extra requirements (or the ones you come up with) are not necessarily things you have learned throughout the course. Again, treat this as if your client wants a feature that you don't know off the top of your head how to implement. How will you go about learning how to make the feature?

A few ideas are as follows:

  • When you mark a volume as read, add it also to the pre-made "Have read" bookshelf. Allow for marking a volume as unread and remove it from the bookshelf as well.
  • Share a link to a volume (there is one to the Google Play store in the JSON), or your review of it to Twitter, Facebook, etc.
  • Find the volume on Amazon and open it in the Amazon app, or on a web browser.

Commit History

It is essential that you get in the habit of committing your code often. This will be helpful both for yourself if you ever need to go back to old code for a variety of reasons, and also for the benefit of those you are working with.

Be committing regularly as it makes sense to do so. There is no set amount of time that should happen or amount of code written between commits; simply use your best judgement. A good rule to follow is if what you've done can't be summarized in about 50 characters, you may have gone too long before committing.

Your PMs will be checking and making sure you are committing regularly, with clear commit messages.

ios-unit1-project's People

Contributors

spencercurtis avatar jonathantmiles avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.