GithubHelp home page GithubHelp logo

hossamabubakr / udacity-full-stack-classroom Goto Github PK

View Code? Open in Web Editor NEW
66.0 3.0 35.0 16.04 MB

A repo for the live coding portion of my full stack Javascript Developer Nanodegree sessions

License: MIT License

JavaScript 23.47% TypeScript 76.53%
express node postgresql sql teaching typescript udacity udacity-fullstack-nanodegree udacity-nanodegree

udacity-full-stack-classroom's Introduction

logo

Full-Stack Nanodegree Classroom

Powered By

typescript postgresql jasmine jwt prettier eslint node circleci aws

AboutDisclaimerPrerequisitesGoalsContentSetupQuestionsContributionsLicense

💡 About

This repo includes the live coding portion of my lectures for Udacity Full-Stack Javascript Nanodegree students.

We are building a backend application called Udacity Hub which functions as a hub for Udacity students and session leads.

In each session, I apply the Nanodegree topics to our application.

Starting from an empty project to a complete application that's deployable to AWS and utilizes CI/CD powered by CircleCI.

This repo will be continuously updated, improved, and iterated upon.

Each session includes a project folder, a list of additional learning resources, a breakdown of the session content, and a quiz.

Each folder contains an extensive list of commits that breaks each session into digestible chunks that are easy to follow.

⛔ Disclaimer

Please DO NOT COPY any of the code included in this repo into your project submission or you might face a plagiarism case.

The purpose of this repo is to serve as a reference for your self-study after our sessions.

Please don't misuse the code provided as a way to skip finishing your projects.

🧱 Prerequisites

Before attempting to start the program you should be familiar with the following topics.

So please click on the provided links to fill in the gaps in your knowledge.

🚀 Goals

By the end of session 10 you will be able to:

  • Utilize some of the best features of TypeScript.
  • Build comprehensive backend applications.
  • Create complex and efficient SQL relationships.
  • Retrieve data from SQL using Joins.
  • Implement authentication / authorization.
  • Implement password hashing, salting, and peppering.
  • Create an extensive set of unit tests.
  • Create and configure several cloud services.
  • Set up and deploy our completed app to the cloud.
  • Create a CI/CD pipeline to automate our deployment.

📖 Content

Project 1: (Image Processing API)

Project 2: (Build A Storefront Backend)

Project 3: (Hosting a Full-Stack Application)

💻 Setup

Each folder functions as its own isolated and self-contained unit. Meaning that you have to set up each folder individually.

To install the required packages please use

npm install

Inside the designated udacity_hub folder NOT the session folder.

Some of the sessions include unit tests which can be executed using

npm run test

And starting from session 5 a set of migrations can be executed using

npx db-migrate X

With X being substituted with up, down or reset.

Starting from Session 4, a database will be needed

To create a database through psql please use

CREATE DATABASE DB_NAME;

🌟 Special Folders

Some sessions include special or additional data files such as SQL_REFERENCE.sql starting from Session 4 which includes the SQL commands used in the live session.

Or the data_migrations folder starting from Session 6 which includes a set of data to be used on your database to add some mock data. And the instructions on how to utilize it are included in the README

🔣 Environment Variables

Starting from Session 5 env files are used to pass important information so please check the ENV-EXAMPLE file in each session you want to run.

🖐 Questions

If you have any questions, ideas, or suggestions please head over to our discussions board where I will do my best to implement your ideas and answer your questions.

🎉 Contributions

Your contributions are welcome! Whether to:

  • Report a bug
  • Discuss the state of the code
  • Submit a fix
  • Propose new features
  • Comment on a commit to explain it further.

Our community is also open for any of your ideas and questions.

Please note that we have a few self-imposed restrictions

  • The changes need to fall under the content of the Nanodegree
  • We can't use a different database system or use an ORM
  • Change the application structure drastically.

Pull requests are the best way to propose changes to the codebase. We actively welcome your pull requests:

  • Fork the repo and create your branch from master.
  • If you've added code that should be tested, add tests.
  • Ensure the test suite passes.
  • Make sure your code lints.
  • Issue that pull request!

Please note that any contributions you make will be under the MIT software license.

🧾 License

This project and its code are licensed under the MIT license.

⚖️​ Legal Disclaimer

Udacity's name and logo are trademarked and owned by The Udacity™ Organization.

udacity-full-stack-classroom's People

Contributors

hossamabubakr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  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.