This Master's level course commits to teaching students the variety of methods that systems communicate with each other.
The final project (FACE-API) of the course was to develop an API that leverages Microsoft's Facial Recognition tools with proper documentation and a great user (developer) experience.
This was my first experience developing a GraphQL and absolutely loved the process and results.
Prof. Nolasco graded the project as "the best final project he has ever seen for this course"
Course outline (topics):
- Recap of HTML, CSS, JavaScript and NodeJS
- System integration options and strategies
- Backend as a Service (BaaS)
- Cloud computing and System Integration (AWS and Azure cases)
- Data transfer formats (JSON, YAML, XML, etc.)
- Data validation, schemas and preprocessing
- Quick review on data transfer protocols and their use cases
- Sending content vs. Streaming content
- Quick/superficial overview of SOA, SOAP, and RPCs
- Rest APIs
- JSON-based Rest-like APIs
- Request methods: GET, POST, PUT, DELETE, PATCH
- Headers, content-types, and HTTP Return Codes
- Best practices
- Practical case with NodeJS
- GraphQL
- AWS Lambda and Azure Functions
- Security
- HTTPS and JWT
- OAuth
- CORS
- Privacy
- Discoverability
- Security Headers
- Input Validation
- Error handling and Audit Logs
- Load Testing
- Middleware (transformation layers)
- Supporting tools
- Swagger / Documentation
- Mongoose
- Auto-generating tools
- Web Sockets
- WebRTC, WebBluetooth, WebUSB, and WebNFC
- Push Notifications
- Microservices Architecture
- Challenges with systems integration