Project description for the 2019 edition of the Web Languages and Technologies course.
Create a website where owners can list their houses and apartments for tourists to rent. To create this application, students should:
- Create a sqlite database where data about users and rentals is stored.
- Create documents using HTML and CSS that represent the web pages of the application.
- Use PHP to generate those web pages after retrieving/changing data from the database.
- This project will be completed by students in groups of three (except in classes where the number of students is not a multiple of three).
- Students should contact their practical class teachers, either in class or by mail, to establish these work groups.
- The list of groups will be available here.
The minimum expected requirements are the following:
- All users should be able to (users can be simultaneously owners and tourists):
- Register a new account.
- Login and logout.
- Edit their profile (username and password at least).
- Owners should be able to:
- Manage their own places for rental. Each place should have a title (e.g., “Cute house near the beach”), a price per day, a location and a description.
- List reservations for their places.
- Tourists should be able to:
- Search for places to rent using several criteria (price, location, dates available, …).
- Rent a place if the place is available.
Students should also make sure that:
- The web site should be as secure as possible.
- Code should be organized and consistent.
- Frameworks are not allowed.
- Small helper libraries (e.g. displaying a gallery of pictures) might be allowed (talk with your practical class teacher).
Some suggested extra requirements. Extra requirements are a way of making sure each project is unique. You do not have to implement all of these:
- Owners should be able to see which places have guest arriving or leaving in the next few days.
- Owners and tourists should be able to cancel a reservation if done in time.
- Tourists should be able to rate and add comments to places they have stayed there. Owners should be able to reply to those comments.
- Tourists should be able to send messages to owners, and owners should be able to reply.
- Owners and tourists should be able to upload photos of a place. Photos uploaded by tourists need to be approved by the owner.
- Owners and tourists should receive a notification anytime something important happens (e.g., a new rental, a reservation has been canceled, a message received, …).
- Develop a REST API that allows bots or other apps to use the website.
- Anything else you can think of…
This is a proposed plan to guide your work. No deliverables are expected or will be evaluated at these dates.
- Week 8: - Mockups and navigation diagrams for the main pages, first draft of the database design.
- Week 9: - Finalize database script and create database. Partial implementation of some main pages and first CSS version.
- Week 10: - All main pages implemented. Start working on secondary features.
- Week 12: - Finish secondary features. Main focus on security aspects.
- Week 13: - REST API or other secondary features. Testing and code cleanup.
- Week 14: - Delivery and presentation.
We recommend that students adopt an agile methodology. Don’t start by planning every little detail right from the start as you run the risk of ending up with a great plan but a poor implementation; but be aware of code organization and quality from the beginning.
Evaluation will be done on the following topics:
- Complexity (implemented features)
- Security (XSS, CSRF, injection, password storage, …)
- Quality (code quality, file organization, consistency, …)
- User Interface (usability, consistency, …)
- Presentation: Practical classes on the week of 16th to 21st of December.
- Delivery: Until the beginning of the class where you are presenting (code, SQL script and README).