Portfolio of Projects from the Udacity-FSND.
Successor of my first Udacity Nanodegree Intro to Programming.
est. time spent: 32 hours (including pre-courses)
Aim of the project was to build a full-stack Web App with Flask and Boostrap which enables Venues & Artists to list themselves and arrange Shows together.
Used tech stack:
SQLAlchemyas ORM library of choicePostgreSQLas databasePython3andFlaskfor server language and frameworkFlask-Migratefor creating and running schema migrations- Frontend: HTML, CSS, and Javascript with Bootstrap 3 (mainly provided by Udacity Team)
Applied concepts:
- How to use Git Bash & Github as version control tool
- Configure local database and connect it to a web application
- Create Model Schemas with columns and relationships (1:1, 1:n and N:N)
- Use SQLAlchemy ORM with PostgreSQL to query, insert, edit & delete Data
- Use WTForms to encapsulate input forms in seperate file & to allow for custom validations
- Use Boostrap as a simple to use Front End Libary and Ajax to fetch flask routes
- Create SQL-like Queries, but without any SQL syntax, only using SQLAlchemy ORM
- How to clearly structurize a larger web application in different files & folders
est. time spent: 36 hours (including pre-courses)
Using 'Flask' and 'React', created a Full-Stack App to manage questions for different categories & develop an API to power the Quiz Gameplay.
Used tech stack:
- React Components as frontend (provided by Udacity Team)
- Python3 and Flask for server language and API development
corsto handle access to the APIunittestfor automated testing of APIscurlto get responses from APIREADME.mdto document project setup & API endpoints
Applied concepts:
- using best-practice
PEP8-styleto design and structur code test-driven-development (TDD)to rapidly create highly tested & maintainable endpoints.- directly test and make response to any endpoint out there with
curl. - implement
errorhandlerto format & design appropiate error messages to client - becoming aware of the importance of extensive project documentation & testing.
est. time spent: 16 hours (including pre-courses)
Using 'Flask' and 'Auth0', created a Full-Stack App to let Users login to Site & make actions according to their Role & Permission Sets.
Used tech stack:
Python3&Flaskfor server language and API developmentSQLAlchemyas ORM /Sqliteas databaseIonicto serve and build the frontend (provided by Udacity Team)Auth0as external Authorization Service & permission creationjoseJavaScript Object Signing and Encryption for JWTs. Useful for encoding, decoding, and verifying JWTs.postmanto automatize endpoint testing & verification of correct Authorization behaviour.
est. time spent: 24 hours (including pre-courses)
Deployed a Flask API to a Kubernetes cluster using Docker, AWS EKS, CodePipeline, and CodeBuild.
(Application has been teared down after successfull review to avoid incurring additional costs)
Used tech stack:
Dockerfor app containerization & image creation to ensure environment consistency across development and production serverAWS EKS&Kubernetesas container orchestration service to allow for horizontal scalingaswsclito interact with AWS Cloud Serviceseksclifor EKS cluster creationkubectlto interact with kubernetes cluster & podsCodePipelinefor Continuous Delivery (CD) & to watch Github Repo for changesCodeBuildfor Continuous Integration (CI), together withpytestfor automated testing before deployment
est. time spent: 20 hours (no precourses)
This is the last project of the Udacity-Full-Stack-Nanodegree Course.
It covers following technical topics in 1 app:
- Database modeling with
postgres&sqlalchemy(seemodels.py) - API to performance CRUD Operations on database with
Flask(seeapp.py) - Automated testing with
Unittest(seetest_app) - Authorization & Role based Authentification with
Auth0(seeauth.py) - Deployment on
Heroku(seesetup.sh)