Mod 4 Project Week — Build an API-Driven User Interface

Overview

It's time for your first paired project week! For this project, you and a partner will build an application that interacts with a third-party API. You will fetch data, render the fetched data to the DOM, and then fetch some more data! In the end, you will have a deployed interactive application that connects with a web API.

The main technical goal of your app is to send two fetches and render the fetched data:

  1. First, fetch a collection of resources (GET a set of users, a set of pictures, a set of authors) and render all of those resources

  2. Fetch more details about a single one of those resources (GET details about a single user, a single picture, a single author, etc…) and then render those details

Check out this deployed example called "Art Viewer". Notice that the application fetches a bunch of pieces of art but you can also click on a single piece of art to see more details. The search feature and the ability to choose how many pieces are shown per page are bonuses. Of course, you can do more than this, but this is the minimum idea!

A Note on APIs:

You are strongly encouraged to choose an API from this list of free APIs as they are all free and, importantly, do not require an API key.

If you are able to find another API that is free and does not require an API key, you are free to use it, but do not waste time on this search.The purpose of this project is to demonstrate your ability to perform fetches and render the returned data on the screen. The subject matter itself is not important and you do not need to create a unique project.

Learning Objectives

While building your first portfolio-level project is certainly the main focus, there are a few other key learning objectives!

  • Demonstrate your skills learned from Mods 1-3: Core JavaScript, HTML & CSS, DOM Manipulation, and Asynchronous JavaScript

  • Develop teamwork skills including communication, problem-solving, compromise, and task management

  • Strengthen your Git workflow fundamentals, managing branches, navigating merge conflicts, and maintaining a repository

  • Practice Agile methodologies by managing a scrum board and by performing daily stand-up and stand-down.

  • Deploy a project!

  • Practice your technical communication through a presentation.

Tips for Success

Focus on demonstrating your learning, not building something unique.

One of the easiest ways to get off track is by worrying about creating a unique project:

  • Student projects are not meant to be unique.

  • You're not creating a new app that addresses a gap in the market.

  • You aren't deploying this app for the purpose of having real users.

  • Student projects are meant for learning and demonstrating your learning

Make Decisions Quickly

You may have a great idea that you really want to implement, but remember, you are working as a team and you only have a week. Time is not on your side and the more time you waste disagreeing with your partner about what features to implement or what API to use, the less time you'll have to actually build the thing.

Plan and Delegate!!

  • Use branches and make PRs

  • Use your scrum board

  • Assign tasks

  • Don't do duplicate work

Meet on your own time

Be in alignment with your teammate outside of the scheduled meetings with your engineering manager

Test your API!

Actually write a fetch to make sure that the API works before choosing it for your proposal

Deliverables

Unlike your solo projects where the project itself was the main deliverable, for a portfolio-level project, you will be required to do a bit more. The deliverables below will help keep you and your partner organized and will help your Engineering Manager (your instructor) informed on your progress. In the end, all of these deliverables will serve as valuable artifacts that document your work.

  • A Project Spec Sheet — A project spec sheet is a document that provides key details about the project including the API being used, the intended features/user stories, and wireframes.

  • A Github Organization with your Repository — A GitHub Organization is a shared account on GitHub where you and your teammates can collaborate on repositories.

    • Note: your organization only needs one repository. This example has a few to show progress after each day, but you shouldn't do that.

  • A Scrum Board — A scrum board is a tool for creating and assigning tasks ("tickets") within a project. Typically, a scrum board will organize tasks into three columns: Backlog (tasks waiting to be assigned), In Progress (assigned tasks that are being worked on), and Done (completed tasks).

  • A Presentation + Walkthrough Demo Video

Milestones

As you work on this project, don't set your sights on the fully completed project from the jump. Give yourself smaller goals that you can reach each day and focus on one goal at a time. As long as your goals build on each other, you will eventually reach your final destination.

For this Art Viewer project, you can see the progress made on each day.

Note: no need to create a new repo for each day - this is just done this way for demonstration purposes.

Eventually, you will need to develop the skill of planning out your objectives. However, for this project we've laid out some daily milestones that you can strive for with bare minimum requirements, ideal progress, and stretch goals:

  • 5pm: The proposal document is complete and posted in the group Slack channel.

    • Bare Minimum: Two examples of API fetch calls. One for many things. One for one thing.

    • Ideal: Descriptions of user stories. Wireframe shows thoughtful idea about what data is displayed.

    • Stretch: Link to their created GitHub organization and repo in their group slack channel

  • Note: If you have not submitted your proposal and are undecided about your API by this deadline, you will be assigned an API by your Engineering Manager.

Project Grading

We care deeply about the quality of the code that is produced at Marcy. Even if your application works as described, was it created following best practices? Did you effectively use all of the skills from the module? Were you able to learn and grow from this project-building process?

To ensure that your project meets Marcy's standards of excellence, your project will be assessed on the following criteria (35 points total):

Fetching Requirements (8 points)

User Interface: Structure and Accessibility (13 points)

General (5 points)

Form Requirements (9 points)

Last updated