We have updated the content of our program. To access the current Software Engineering curriculum visit curriculum.turing.edu.
Consultancy - Goals
Learning Goals
Below are technical goals that you should be applying in this project. The priority of these goals are demonstrated using a star grading system.
By the end of this project:
- Student should have a functional understanding of the concept ⭐ ⭐ ⭐, or
- Student should have a familiar understanding, but may still have questions ⭐ ⭐, or
- Student should be be aware of the concept, but may need further resources to implement ⭐
Note: See Learning Goals to see at what level these skills need to be by the final.
Explicit Technical Expectations
- Consume one or more external APIs ⭐ ⭐ ⭐
- Build APIs that return JSON responses ⭐ ⭐ ⭐
- Use an external OAuth provider to authenticate users ⭐ ⭐
- Refactor code for better code organization/readability ⭐ ⭐
- Create a project with a separate frontend and backend ⭐ ⭐
- Implement a production-quality user interface using Bootstrap or other common CSS styling framework ⭐ ⭐
Project must include at least 5 points from the List of Glory, including but not limited to…
Reference: List of Glory
- Use a decorator. (Draper or something else)
- Use ActionCable
- Incorporate a microservice using either Sinatra or other technology.
- Use background workers
- Use pub/sub with a message queue
- Use a browser API, such as the camera or local storage
- Implement API/view caching
- Implement observability - (a service like New Relic/Skylight/Honeybadger, or a performance measurement gem like
rails_performance
. Must include before + after measurements to illustrate & discuss value added.) - etc.
Explicit Professional Expectations
- Practice good project management by using project boards, participating in daily stand-ups and team retros ⭐ ⭐ ⭐
- Utilize quality workflow practices: small commits, descriptive pull requests, and code reviews ⭐ ⭐
- Write thorough, understandable documentation ⭐ ⭐ (consider using Swagger)
Implicit Learning Goals
- Reading Documentation
- Time Management
- Prioritizing Work
- Breaking down large project into small pieces
- Breaking down a problem into small steps
- Practice individual research (articles, videos, mentors)
- Self-advocacy in a team