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 1. Introduction to Web Development
- Testing Flask Applications (After Exercise 1)
- Exercise 2. API Design
- Flask API Project Layout
- Exercise 3: Implementing REST APIs with Flask
- Testing Flask Applications part 2 (After Exercise 3)
- Exercise 4. Implementing Hypermedia Clients
- Meeting schedule
- PWP Projects
This is a 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.
The course starts with 4h lecture that provides the theoretical background of RESTful APIs, followed by five mandatory guided laboratory exercises.
During the project work, groups of three students design, implement, test and document a RESTful API and a client application that consumes such API. The project work is divided into several deadlines that students have to meet to pass the course. After majority of deadlines students will receive feedback from the course staff to improve their work.
Students with good programming skills and with some experience in web programming can skip the deadlines and present the final version of the project work. They must do the exercises by their own, though. They will not receive intermediate feedback from course staff. Please, choose this option ONLY if you think you have enough experience.
Schedule of exercises can be found from Weboodi. Please, note that some dates might change during the course. You will receive an email if this happen.
- Deadline 0 : Topic registration using the registration form (27th Jan)
- Deadline 1: RESTful API introduction (03.02.2019)
- Deadline 2 : Database design and implementation (17.02.2019)
- Deadline 3 : RESTful API Design (10.03.2019)
- Deadline 4 : RESTful API implementation (07.04.2019)
- Deadline 5 : Client design and implementation (28.04.2019)
- Deadline 6 : Final Deliverable (10.05.2019). FOR ALL STUDENTS
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?¶
This course serves as an introductory course to FULL STACK DEVELOPMENT,a profile needed more and more in IT companies
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.
- Register for the lecture and exercises in WebOodi.
- 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)