Git Product home page Git Product logo

feup-lbaw's Introduction

feup-lbaw's People

Contributors

afonsojramos avatar dannyps avatar dependabot[bot] avatar msramalho avatar vminhoto avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

afonsojramos

feup-lbaw's Issues

Acessibilidade

Acessibilidade imprimir em pdf e meter no artefacts

  • Todas as imagens com texto alt
  • Todos os forms têm label nos campos
  • fieldset em todos os forms
  • dizer que os erros são indicados no topo do form, mas que é por uma questão de laravel e de custo de oportunidade

M07:Comments

Web resources associated with comments, includes the following system features: create comment, edit comment and delete comment.

Artefacto 7

  • Add comment
  • Delete comment
  • Edit comment
  • Flag comment

M05: User Administration (extra)

  • last seen
  • think about banning user's impact on session (no login and close all open sessions)
  • search user by username in the popup

M08:Flags

Web resources associated with flags, includes the following system features (for both users, comments and posts): create flags, archive flags and delete flags.

Artefacto 7

  • Create User Flag
  • Archieve User Flag
  • Delete User Flag
  • Create Post Flag
  • Archieve Post Flag
  • Delete Post Flag
  • Create Comment Flag
  • Archieve Comment Flag
  • Delete Comment Flag

Create faculty/{id} page

This should display the faculty description and a list of n news about this faculty and a link to its university

Usabilidade

Usabilidade imprimir pdf e meter em artefacts

  • dizer que a localização do user porque existe o title e existe um h1 em cada página, breadcrumbs não se aplicam
  • folha de estilos para impressão, basta página de post
  • adicionar * aos itens de preenchimento obrigatório nos forms
  • implementar a pesquisa ver issue #30
  • como somos uma rede social não nos interessa tags "open graph"
  • minificar o dropzone e dizer que os nossos não são minificados por uma questão de manutenção

Database seed, wrong serial sequences

I had to fix this line SELECT pg_catalog.setval('post_id_seq', 16, true); because it was 1 instead of 16, the next id for post. The same needs to be done for the other tables that have serial keys.

This might be possible through migrations.

Relevant data for presentation

  • posts for the past week, the past month, the past year
  • update university of porto's faculties (4 or 5)
  • posts for feup
  • make all posts have a school year >= 2010

M05:User Administration

Web resources associated with user administration, includes the following system features: show all users, show a specific user, block/unblock a specific user and delete it's posts, comments and avatar.

Routes

  • R501: Show All Users /admin/users
  • R502: Show User /admin/users/{id}
  • R503: Block User /admin/users/{id}/block
  • R504: Unblock User /admin/users/{id}/unblock
  • R505: Delete Posts /admin/users/{id}/posts
  • R506: Delete Comments /admin/users/{id}/comments
  • R507: Delete Avatar /admin/users/{id}/avatar
  • delete individual posts if admin
  • delete individual comments if admin

Optional:

  • add an info-block for blocked users.

# [A10](https://hackmd.io/mQV8qTk-R9y1-xB05MyXUQ?both)

  • [M] mandar email ao jcl sobre o facto de saber se as transações podem ficar etéreas, dado que perderam relevância
  • Cada um acabar o seu módulo e escrever as alterações em relação aos artefactos
    • [A] Module 2: profile
    • [D] Module 5: user admin
    • [M] Module 4: University+fac admin
    • [V] Module 8: Flags
  • [D] Escrever texto do artefacto
  • [M] Falar do input validation
  • [M] escrever upvotes na página de post preview, index
  • [M] US24, templates para os posts
  • [D] html e css validation, criar pdfs e meter no branch artifacts
  • Criar credenciais e meter no artefacto
  • [A] Implementation details, user stories - see example
  • [M] After everyone has finished move the Routes to the controlers
  • Meter grupos no fim e data de entrega, ver anteriores
  • submeter

content of old readme

Artefacts

  • A9 Editor: Afonso

    • Status: [submited]
  • A8 Editor: Vitor

  • A7 Editor: Miguel

    • Status: [submited]
    • Status revision: [submited]
    • Tasks [deadline 09/04/2018]
      • Afonso - Module Post (with module description); Module Flag (with module description); Module User Admin (write routes and include module description)
      • Daniel - [A6_2] change post frequency to hundreds per year and similar stuff; find copy past of SELECT01; in SELECT02 say why no clustering (impact on updates); SELECT 04 decide between btree (btree does need range) and hash (for high cardinality); submeter A6_2[A7] Module Authentication (with module description)
      • Miguel - [A6_2] clear SQL (remove comments, remove useless, join stuff for the same table); [A7] Module Users (with module description); Module Static Pages (with module description);
      • Vitor - create table stub; Module Comments (with module description); Module University Faculty Administration(UFA) (with module description);
    • Modules:
      • [D] M01:Authentication
      • [M] M02:User Profile
      • [A] M03:Posts
      • [V] M04:University Faculty Administration
      • [A] M05:User Administration
      • M06:Votes
      • [M] M06:Static Pages
      • [V] M07:Comments
      • [A] M08:Flags
    • Fixes:
      • logout: falta redirect
      • editar foto: corrigir rota
      • edit password action: remove pwd check
      • edit password form: sai submit, entra AJAX
      • title 304: tirar action
      • edit-post 306:
      • 307: remove redirect from ajax call
      • ^ same for vote post.
               * 403 ver se é ajax e comparar submit do 404. return vs redirect.
               * 404: tirar ? e pôr +.
      • 503: onde é chamado? (corrigir métodos da página de administração)
  • A6 Editor: Daniel

    • trigger slides
    • indexes slides
    • Status: [submited]
    • Tasks [deadline 30/03/2018]
      • Afonso - [fake-data] use mockaroo to generate some more fake data (not too much) for the tables (see the lines that already exist); [frequent-updates] insert query for flag_comment, flag_post, flag_user; [frequent-updates] to insert a new post; [trigger] to calculate the number of votes in a post, whenever a vote is cast or deleted;
      • Daniel - [performance-index] for user attributes using hash (high cardinality); [performance-index] for post faculties and similar (if found) using btree (medium cardinality); [editor] put all the SQL (from the A5) together (see example); [editor] fix numeration in the A6 query names; [editor] remove comments and brush up A6 and deliver; (note from M: verificar se as colunas search_title e search_content aparecem no SQL da criação das tabelas).
      • Miguel - [full-text-search-index] for search_title and search_content (explain why GIN over GIST); [trigger] for the full text search ts_vector update; [trigger] to prevent users from voting on own post; [trigger] to prevent users from flagging own posts; [trigger] similar for comments; [trigger] to ensure that a user cannot have more than two mobilities in the same year.
      • Vitor - [frequent-updates] for flagging something: flag_comment, flag_post, flag_user; [frequent-updates] to create a post (see the ones already done); [frequent-updates] to update post (easy after insert); [frequent-updates] for archiving flags (flag_comment, flag_post, flag_user); [frequent-updates] to delete a comment;
      • Grupo - ver se falta alguma das 4 coisas (frequent queries, frequent updates, proposed indices, triggers); [optional-trigger] to calculate statistics based on beer_cost, life_cost, etc.
  • A5 Editor: Afonso

    • Status: [submited]
  • A4 Editor: Vitor

    • Status: [submited]
    • Database table with countries
    • Tasks [deadline 13/03/2018]
      • Afonso -
      • Daniel - converter para enterprise architect
      • Miguel -
      • Vitor - escrever texto e colocar imagem do daniel
  • A3 Editor: Miguel

    • Status: [submited]
    • GHPages
    • Dwaw.io - SiteMap
    • Tasks [deadline 01/03/2018]
      • Afonso - Ver a cor; Design do Logo; statistics; FAQ (bootstrap Accordion); about ; recover password
      • Daniel - Footer; feed (search, list of posts); post page
      • Miguel - Navbars (unauthenticated, authenticated, admin); new post; contacts
      • Vitor - sitemap; User Profile (details, following, history);
    • Tasks [deadline 06/03/2018 - 19h]
      • Afonso - Statistics bonitas ; Wireflows; insert photos in report; Finishing Touches;
      • Daniel - Search; Manage Flags; Manage Users;
      • Miguel - Edit Post; Manage Universities; Manage Faculties
      • Vitor - Edit User; put flag in user profile;
    • Tasks [deadline 13/03/2018]
      • Afonso - mais destaque user profile navegação (cor mais forte); Dar destaque ao sign-in, mudar nome e ou cor; Fix Buttons Colours;
      • Daniel - View post, meter os 3 labels para cima da imagem; 10-12 palavras para o texto (diminuir largura); aumentar tamanho de letra dos post previews nos feeds. tirar classes não usadas do user.management
      • Miguel - Frola editor, meter maior altura; converter markdown em pdf com links (tentar [link](url))
      • Vitor - caixa da foto mais pequena; meter 1 form element por linha; aumentar tamanho de texto dos following; date->birthdate; tirar gender;
  • A2 Editor: Daniel example

    • Status: [submited]
    • Draw.io - UML
    • Tasks [deadline 19/02/2018]:
      • Afonso - User Stories
      • Daniel - User Stories
      • Miguel - Supplementary requirements
      • Vitor - Actors (UML + Table)
  • A1 Editor: Afonso

    • Status: [submited]

M04:University Faculty Administration

Web resources associated with University and Faculty Administration, including the following system features: adding, editing and deleting both faculties, universities and cities.

Routes here

  • Custom Auth Facade
  • Admin middleware
  • Manage Universities Page
  • Add University
  • Edit University
  • Delete University
  • Manage Faculties Page
  • Add Faculty
  • Edit Faculty
  • Delete Faculty
  • Manage Cities Page
  • Add City
  • Edit City
  • Delete City
  • Make these endpoints start with /api

Search in posts

  • other pages redirect to post/search
  • search page uses ajax, by means of submit in form#form_search
  • search page with more search fields
  • search page with infinite scrolling
  • fix bug of not remembering previous values
  • complete usage of search fields

Authentication Popup gets stuck

When we access /login or /register the popup is opened correctly, but it does not close when a user clicks outside it or clicks in the other popup.

New Post w/ help and inline errors

make this page for dummies and also make the errors appear next to the respective input

  • make the errors appear next to the inputs
  • insert help buttons with tool tips next to each input
    this has been done on the new post page

Implement transactions from A9

This should use laravel's eloquent. This page explains everything in full detail.

  • [M] implement transaction for post page
  • [?] implement the remaining transaction for the flags

M03:Posts

Web resources associated with posts, includes the following system features: create, edit and delete posts as well as search for posts.

Artefacto 7

  • Create Post
  • View Post
  • Delete Post
  • Add Vote to Post
  • Remove vote from Post
  • Edit Post
  • Share Post javascript
  • Ajax to load Universities and then Faculties

Guião de Apresentação

Introdução

Afonso:

  1. Vecto é uma plataforma online para partilha de histórias de Erasmus/Mobilidades.
  2. Foi desenvolvido utilizando uma framework recente de PHP: Laravel, que conta com o suporte de uma enorme comunidade, é escalável e altamente dinâmico.
  3. Durante esta apresentação, guiá-los-emos pelo Vecto.

Demonstração

Afonso

  1. Iniciar na página inicial, mostrando o que está disponível para um user não autenticado (about, FAQ, Statistics).
  2. Mostrar um post, atraindo a atenção para os links (username, faculdade e pesquisa por ano letivo), o conteúdo rico que pode ser inserido (voltaremos a esta página).
  3. Tentar registar um utilizador com um email inválido.
  4. Registar um utilizador (nome: Fulano, email: [email protected], user: fulano, pwd: beltrano) (auto-login)

Daniel

  1. Logout.
  2. Tentar registar um utilizador com um email/user já em uso (see 4.).
  3. Carregar no Vecto.
  4. Login com email errado.
  5. Login (see 4.).
  6. Estando no index, mostrar que não há Friend's Recent Posts dado que o user não segue ninguém.
  7. Mostrar os Recent Posts com infinite scrolling.
  8. Abrir um dos posts, ir ao utilizador que o publicou, e segui-lo.
  9. Volta ao index, e mostrar que já há posts no Friend's Recent Posts.
  10. Abrir um qualquer post e deixar um comentário.

Miguel

  1. Editar perfil: fazer upload de uma imagem, editar data de nascimento, nome.
  2. Criar um post com alguma complexidade [gist url here], do MIT para a FEUP.
  3. Tentar dar vote ao post recém-criado.
  4. Dar vote noutro post (post agressivo, com comentários e votos) e fazer share.
  5. Deixar um novo comentário. Editar o comentário. Apagar o comentário.
  6. Dar Flag ao post.
  7. Abrir perfil do utilizador criador do flagged post.
  8. Pesquisa: últimos 7 dias, feup (FTS, Multiple fields search).
  9. Logout

Vitor

  1. Login como Admin.
  2. Entrar no Admin Dashboard. Explicar sucintamente cada funcionalidade presente (univs, users, flags, logs).
  3. Adicionar uma Faculdade à UP (Faculdade de Letras).
  4. Mostrar pesquisa de users, apagar posts do fulano.
  5. Mostrar posts com flags, apagar um desses posts, mostrar que a flag é apagada.
  6. Mostrar cities rq.
  7. Mostrar logs. Mostrar log da database. Explorar logs dados os eventos passados.

Conclusão

Miguel

  1. Todo o CSS foi validado, bem como o HTML
  2. Esperamos que queiram investir neste projeto.

Q/A

Checklist A10

doku checklist

  • Implement privileged authentication (sign-up, sign-in, password recovery).
  • Implement support for mobile devices (responsiveness).
  • Implement search using the full-text search features of PostgreSQL.
  • Implementing online help.
  • Ensure isolation of various system layers following Laravel's architecture.
  • Implement an architecture to handle internal errors.
  • Implement AJAX calls.
  • Validate data entered by the user in forms using HTML5.
  • Validate data entered by the user in forms using JavaScript.
  • Validate data entered by the user in forms using Laravel.
  • Check HTML and CSS code using the W3C validation tools.
  • Check the accessibility of interfaces using automated tools and checklists.
  • Check the usability of the product based on checklists of common web usability problems.
  • Remove test and development comments from source code.
  • Remove temporary or unused files from the delivered source code.
  • Create a new release (A10) on the GitHub repository
  • Include a list of features in the product artifact (A10), indicating the implementation status of each feature (as a percentage).
  • Ensure the product is available, inside the FEUP VPN, at http://lbaw17GG.lbaw-prod.fe.up.pt.
  • Include the URL of the product in A10.
  • Include product access credentials (with different levels of permissions) in A10.
  • Remove test data from the database.
  • Populate the database with good (realistic) examples.
  • Prepare and publish the script for product demonstration.

M02:User Profile

Web resources associated with user individual profile management and view, includes the following system features: public profile view, password recovery, view and edit personal profile information, view and edit personal photograph.

Artefacto 7

  • Load posts on user profile page
  • Load user comments
  • Load user upvotes
  • Following + followers
  • query para, no index, mostrar os posts dos following

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.