Univeristy Subject - Web Technologies Laboratory (Laboratório de Tecnologias Web)
Faculty of Engeneering of University of Porto
2017/2018
With the colaboration of Afonso Jorge Ramos and Daniel Silva
A TODO list management platform:
Official instructions.
Full Reference in the 📖 WIKI
To initialise the database, go to the database folder and run: sqlite3 -init todo.sql todo.db
📂 root - Contains the folder structure and the files that represent the web pages
- 📁 classes -
php
files that describe the layout and behaviour of the classes - 📁 database - files related to the database (
todo.sql
,todo.db
,connection
) - 📂 public - only the files that anyone should be able to access
- 📁 css - CSS files
- 📁 js - javascript files (can have more subfolders)
- 📂 images - Images: profile pictures and other media
- 📁 profile - User's profile pictures
- 📁 other - Any other images
- 📁 actions - php files that receive post requests and redirect
- 📁 includes - contains files that are reused across other
.php
files- 📁 common - Common includes
- 📂 templates - folder that contains the
html
templates for the main pages to use- 📁 common - Common templates
- 📁 dashboard - Dasboard templates
- All the content should be in english;
- Use camelCase in variables, database tables and database fields;
- Classes names start with Capital letter;
- Classes file names start with Capital letter, example:
User.php
; - Pages file names are underscore separared, example:
produt_edit_members.php
; - Pages must have specific titles assigned, in the html title tag;
- Use EditorConfig;
- Always use
'use strict';
at the beginning of javascript files; - Use
defer
in script tags inside the html, at the head, like so:<script = "script.js" defer></script>
, orasync
if necessary; - Use
dirname(__FILE__)
when including/requiring files, example in the classes folder files:
require_once(dirname(__FILE__)."/connection.php");
- Register a new account
- Login into an account
- Logout of an account
- Edit user profiles
- List a user's todo lists
- Create new todo list (that belongs to a user)
- Add items to a todo list
- Mark an item as complete
- Delete a todo list
- Create a Project
- Manage Projects
- Manage Project's Members
- Create a new todo list (in a project)
- Share a link to a Todo List
- Share a links in Projects
- List's Tags and editing
- Flexible search
- Bookmarkable searches
- Choose a profile picture
- Creation of thumbnails and full-sized photos
- Change a List's color
- Choose a Project's color
Many more
- Hashed passwords
- Authentication only pages
- Authentication AND permission only pages
- CSRF tokens on forms
- CSRF tokens on ajax
- XSS prevention
- Ctrl+F opens Search
- Ctrl+S opens Sidebar
- Ctrl+P opens a Project's Modal
- Ctrl+L opens a New List's Modal
- Esc clears the search, closes modals, and cancels the text edits