About • Disclaimer • Prerequisites • Goals • Content • Setup • Questions • Contributions • License
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.
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.
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.
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.
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;
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
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.
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.
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.
This project and its code are licensed under the MIT license.
Udacity's name and logo are trademarked and owned by The Udacity™ Organization.