In database terminology primary key refers to the column in a table that's intended to be the primary way of identifying rows. Each table must have exactly one, and it needs to be unique. This is usually some kind of a unique identifier associated with objects presented by the table, or if such an identifier doesn't exist simply a running ID number (which is incremented automatically).
- Project Work Assignment
- Course Material
- Exercise 0
- Exercise 1. Introduction to Web Development
- Testing Flask Applications (After Exercise 1)
- Exercise 2. API Design
- Extra Chapter: Managing Relations
- Exercise 3: Implementing REST APIs with Flask
- Testing Flask Applications part 2 (After Exercise 3)
- Flask API Project Layout
- Exercise 4. Implementing Hypermedia Clients
- PWP Projects
This is an eminently practical course which aims to provide adequate knowledge to design, implement test and document a Web API.
During the course students will design and implement a RESTful Web API as well as a client for such API.
- Students understand what a Web API is and learn different Web API architectures.
- Students understand the concept of hypermedia and how it can be used to build Web APIs.
- Students are able to design and implement a Web API following REST architectural style principles using existing web frameworks.
- Students are able to write unit and functional tests to inspect their APIS.
- Students are able to document their Web APIs using adequate software tools.
- Students are able to implement simple software applications that make use of the APIs.
Summer course implementation & schedule¶
The summer course consists of independent work which you can schedule to your liking. Do note however that there is a lot of work to do so it's best to get started as soon as possible. You should also note that while help is available through the Mattermost chat environment, the staff is on summer holidays during July. This means you should aim to complete the most difficult parts of the exercises and course project in June. This means in particular exercise 2 and deadline 3 of the project work (i.e. API design and documentation).
Here is the chronological order of things to do in order to complete the course and suggested schedule for completing them.
- Week 1 (1.6. -> 7.6.)
- check the opening lecture video from the course material page or familiriaze yourself with its topics through some other means
- do exercise 1 and go through database testing material to learn about basic web development with Flask and SQLAlchemy
- set up your project and do deadlines 1 & 2 for the project work
- review your deadline 1 deliverable with course staff in a meeting or via Mattermost discussion
- study up on REST and hypermedia
- do exercise 2 to learn about designing and documenting a hypermedia-driven REST API
- do deadline 3 (API design) of the project work
- review your deadline 3 deliverable with course staff in a meeting
- do exercise 3 and go through API testing material to learn about development of hypermedia-driven REST APIs with Flask.
- check the project layout material
- complete project deliverable 4 (API implementation)
- do exercise 4 to learn about implementing API clients
- complete deadline 5 (client implementation) of the project work
- review your project with course staff in a meeting
- improve your project based on feedback to get a better grade (optional)
There is no exam for the course. The final grade is mainly based on the Project work (report and software generated by the students). Exercises results, students' initiative and degree of participation will also be considered. Students can increase the final grade implementing some extra work.
Why this course?¶
During the course students will have to go through the different steps of application development, namely: design, implementation, documentation and test. In addition, students will have to do several iterations based on customer (course staff) feedback. This work resembles quite a lot the way of working in IT companies.
Finally students need to develop team work skills, such as role assignment and time management.
- For this course you need to have an account in one GIT cloud service. You can choose among Github, Gitlab or Bitbucket.
- Register your team and topic using this form. Note that you should provide a link to the repo which is going to contain your server and client (see previous link).
Mattermost: Online communication channel. You should have received instructions to register in Mattermost via email. Otherwise, ask course staff.
- Iván Sánchez Milara (TS354)
- Mika Oja (TS368)
- Marta Cortés Orduña (TS354)