Code Monkey home page Code Monkey logo

feup-ltw's Introduction

feup-ltw - Group 1

Univeristy Subject - Web Technologies Laboratory (Laboratório de Tecnologias Web)

Faculty of Engeneering of University of Porto

2017/2018

With the colaboration of Miguel Ramalho and Daniel Silva

A TODO list management platform:

Official instructions.

Full Reference in the 📖 WIKI

Database

To initialise the database, go to the database folder and run: sqlite3 -init todo.sql todo.db

Project Organization

📂 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

UML (napknin version)

Code practices

  • 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>, or async if necessary;
  • Use dirname(__FILE__) when including/requiring files, example in the classes folder files:
require_once(dirname(__FILE__)."/connection.php");

Features

Minimum

  • 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

Extra

  • 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

Security Functionalities

  • Hashed passwords
  • Authentication only pages
  • Authentication AND permission only pages
  • CSRF tokens on forms
  • CSRF tokens on ajax
  • XSS prevention

Keyboard Shortcuts

  • 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

feup-ltw's People

Contributors

afonsojramos avatar dannyps avatar msramalho avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.