Full Stack Web Developer Nanodegree

Thank you for signing up for this Nanodegree! For important program information refer to the Nanodegree Student Handbook, also available for download in your Nanodegree Portal. You're part of a cohort - a community of students who will work at about the same pace and interact in Udacity Discussions, our forum system. We look forward to working with you and hearing your feedback in the forum!

Need help getting started?


Course Resources

What is a Nanodegree?

A Nanodegree is a new type of credential, designed to prepare you for a job. It is built with industry for you to master skills that employers truly seek in a Full Stack Web Developer. The Nanodegree is project-based: you'll complete several projects, with guidance and code reviews from our Coaches, to learn and show off your skills. It offers a personalized learning roadmap: take only the courses you need to ace projects! We'll customize your path to be as efficient and effective as possible. See how it works.

Downloadable Materials

You can download Supplemental Materials, Lesson Videos and Transcripts from Downloadables (bottom right corner of the Classroom) or from the Dashboard (first option on the navigation bar on the left hand side).

Nanodegree Projects

Project 1: Movie Trailer Website

How do I complete this project?

  1. Install Python.
  2. Create a data structure (i.e. a Python Class) to store your favorite movies, including movie title, box art URL (or poster URL) and a YouTube link to the movie trailer.
  3. Create multiple instances of that Python Class to represent your favorite movies; group all the instances together in a list.
  4. To help you generate a website that displays these movies, we have provided a Python module called fresh_tomatoes.py - this module has a function called open_movies_page that takes in one argument, which is a list of movies and creates an HTML file which visualizes all of your favorite movies.
  5. Ensure your website renders correctly when you attempt to load it in a browser.

Project 2: Tournament Results

How do I complete this project?

  1. Install Vagrant and VirtualBox.
  2. Clone the fullstack-nanodegree-vm repository.
  3. Launch the Vagrant VM.
  4. Write SQL database and table definitions in a file (tournament.sql).
  5. Write Python functions filling out a template of an API (tournament.py).
  6. Run a test suite to verify your code (tournament_test.py).

For complete project details, make sure you check out Lesson 5 of the Intro to Relational Databases course, including the Project Description.

Project 3: Item Catalog

How do I complete this project?

  1. Install Vagrant and VirtualBox.
  2. Clone the fullstack-nanodegree-vm repository.
  3. Launch the Vagrant VM (vagrant up).
  4. Write your Flask application locally in the vagrant/catalog directory (which will automatically be synced to /vagrant/catalog within the VM).
  5. Run your application within the VM (python /vagrant/catalog/application.py).
  6. Access and test your application by visiting http://localhost:8000 locally.

Project 4: Conference Organization App

How do I complete this project?

  1. You do not have to do any work on the frontend part of the application to finish this project. All your added functionality will be testable via APIs Explorer. More in-depth explanation.
  2. Clone the conference application repository.
  3. Add Sessions to a Conference
    • Define the following endpoint methods
      • getConferenceSessions(websafeConferenceKey) — Given a conference, return all sessions
      • getConferenceSessionsByType(websafeConferenceKey, typeOfSession) Given a conference, return all sessions of a specified type (eg lecture, keynote, workshop)
      • getSessionsBySpeaker(speaker) — Given a speaker, return all sessions given by this particular speaker, across all conferences
      • createSession(User, SessionForm, websafeConferenceKey) — open to the organizer of the conference
  4. Define Session class and SessionForm
    • Session name
    • highlights
    • speaker
    • duration
    • typeOfSession
    • date
    • start time (in 24 hour notation so it can be ordered)
  5. Work on indexes and queries
  6. Create indexes
  7. Come up with 2 additional quereies
  8. Solve the following query related problem: Let’s say that you don't like workshops and you don't like sessions after 7 pm. How would you handle a query for all non-workshop sessions before 7 pm? What is the problem for implementing this query? What ways to solve it did you think of?
  9. Add a Task
  10. Define the following endpoints method: getFeaturedSpeaker()

Project 5: Linux Server Configuration

How do I complete this project?

At this time, if you're ready to submit Project #5, please email us at fullstack-project@udacity.com for further instructions.

Nanodegree Cohorts and Community

Every month, a new cohort will start on the Full Stack Web Developer Nanodegree. Each of these cohorts will have its own Udacity Discussions forum. Students will be encouraged to form smaller study groups and to connect with one another over the group chat feature built into Udacity's website.