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).
Programmable Web ¶
Enroll to Programmable Web Project, Spring 2024
Course Contents ¶
- Project Work Assignment
- Forming Groups
- Project Meetings Calendar
-
Deliverable 0 - Group Registration
2024-01-19, 23:590.00 / 0.00
-
Deliverable 1 - Project Plan
2024-01-26, 23:590.00 / 5.00
-
Deliverable 2 - Database
2024-02-09, 23:590.00 / 5.00
-
Deliverable 3 - API Implementation
2024-03-01, 23:590.00 / 21.00
-
Deliverable 4 - API Documentation and Hypermedia
2024-03-22, 23:590.00 / 18.00
-
Deliverable 5 - API Use
2024-04-26, 23:590.00 / 26.00
-
Final deliverable - Reflection and Feedback. Project Management.
2024-05-06, 23:590.00 / 13.00
- Course Material
- Tutorials
- Setting up Python environments for exercises
- Setting up the project work environment in GIT
- API Design Example
- Exercises
-
Exercise 1. Introduction to Web Development
2024-02-01, 23:590.00 / 4.00
-
Exercise 2: Implementing REST APIs with Flask
2024-02-19, 23:590.00 / 4.00
-
Exercise 3: API Documentation and Hypermedia
2024-03-11, 23:590.00 / 4.00
-
Exercise 4. Implementing Hypermedia Clients
2024-04-04, 23:590.00 / 4.00
-
Return Box Page
0.00 / 0.00
Course description¶
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.
Learning Outcomes¶
- 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.
Course implementationInitial lectures¶
Present main theoretical concepts of the course. Schedule is in Peppi/Tuudo.
- Lecture 0 Course presentation. 08.01.2024. 10:15-12:00 You can follow via Zoom.
- Lecture 1 Programmable Web. 11.01.2024. 12:15-14:00 at IT115.
- Lecture 2 APIs and Microservices. 15.01.2024. 10:15-12:00 at IT116.
Exercises¶
Exercises will guide students through the different aspects of the course. Exercises sessions are preceded by a Lecture where main aspects of the Exercise are explained. During exercise session (not mandatory) we expect students have completed a big part of the exercise. The session is mainly for a Q&A. Students wont have enough time during the exercise session to solve the whole exercise.
Attendance to the exercise session is not mandatory but attending at least one hour to the session will give you some extra points.
Exercises Schedule¶
Schedule of lecture and exercise sessions are defined in Peppi/Tuudo.
Deadlines for exercise: Monday after the exercise Q&A session:
Exercise 1 deadline: 2024-02-01 23:59
Exercise 2 deadline: 2024-02-19 23:59
Exercise 3 deadline: 2024-03-11 23:59
Exercise 4 deadline: 2024-04-04 23:59
Exercise 2 deadline: 2024-02-19 23:59
Exercise 3 deadline: 2024-03-11 23:59
Exercise 4 deadline: 2024-04-04 23:59
Project Work¶
During the project work, groups of 3 to 4 students design, implement, test and document a RESTful API and a client application that consumes the API. The project work is divided into several deadlines that students have to meet to pass the course.
An schedule with the project deadlines can be found in the Project Work Assignment page
Help will be provided mainly through Discord. You can consult also via email.
Assessment¶
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?¶
Students will gain necessary competences to design, implement, document and test an API for a web application. 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.
Course Registration¶
- For this course you need to have an account in one GIT cloud service. You can choose among Github or , Gitlab. Github is preferred but if you wish to have a private repository, use Gitlab instead.
- Project topic registration will be done through a return box in Lovelace.
Contact¶
Mail: pwp-course@lists.oulu.fi
Discord: The invitation link has been sent to your email when you enrolled for the course in Lovelace.
Course staff¶
- Mika Oja
- Iván Sánchez Milara