Coder Social home page Coder Social logo

adrianharabula / condr Goto Github PK

View Code? Open in Web Editor NEW
1.0 4.0 0.0 7.36 MB

ConDr (Consumer Decision Maker) - Project carried out within the Web Technologies course, academic year 2016-2017, Faculty of Computer Science, Iași.

Home Page: https://adrianharabula.github.io/condr/

License: MIT License

PHP 64.83% JavaScript 6.88% Vue 0.23% Shell 0.42% Dockerfile 0.16% Blade 27.48%
project infoiasi web

condr's Introduction

Consumer Decision Maker

Project started on March 2017 @ UAIC Iaşi

Stackshare

The app

Tell us your wishes and we'll help you decide! ConDr gives you suggestions whether to buy or not a product you are looking for by searching through our database.

Original request here:

Develop a web tool to provide consumers with advice on decisions to purchase goods / services in an ethical way. The system will be able to store and use the simple rules of the form "if then " - in our case, for example, "we will not buy / use the product P because it contains / uses substance S", or "I will choose P instead of Q because of M (for example, low mobility or unreasonable price)"- to provide suggestions on personal or group resources. The application will also provide statistics on most of the desired resources, restrictions, people with similar preferences, etc. As a source of inspiration, see Buycott. Bonus: using web microservices.

The result:

ConDr_-_Consumer_Decision_Maker_Video_Presentation.mp4

Relevant links

Updates

  • March 2019 - 2 years anniversary, congrats everyone involved!
  • November 2018 - Our php7-with-oci8 docker image got 1M pulls
  • June 2017 - We presented the project for evaluation.
  • March 2017 - This project started.

Byproducts

Things that came out during development of this project as a side effect:

Contributing

Thank you for considering contributing to the ConDr app! The contribution guide can be found in the ConDr documentation.

ConDr is using Laravel PHP, a web application framework with expressive, elegant syntax. Come and learn with us programming!

License

The ConDr app is open-sourced software licensed under the MIT license.

The Team

B2 group, academic year 2016-2017:

  • Bulbuc-Aioanei Elisa
  • Anghelina Elena
  • Buza Mădălina-Gabriela
  • Harabulă Adrian

condr's People

Contributors

adrianharabula avatar elena-anghelina avatar elis47 avatar madalina-buza avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

condr's Issues

Ce limbă să folosim pentru aplicație?

În ce să scriem textele, în ce limbă să avem în vedere aplicația?

De exemplu ne ajută cu ceva dacă o facem și în engleză?

Puncte forte în română:

  • e pe înțelesul tuturor, nu ne e mare lucru să scriem
  • pentru ce se face la facultate e mai mult decât suficient

Puncte forte în engleză:

  • se poate arăta codul și la interviuri în engleză
  • se poate arăta și la oameni care nu sunt din țară :))

Decizie sub ce licenţă să fie codul scris

Dintre mai multe opţiuni am ales licenţa MIT.

Este o licenţă liberă, permite modificarea codului deja existent, comercializarea lui, distribuirea, etc.

Este aceeaşi licenţă sub care sunt publicate sursele frameworkului Laravel.

Template listarea produselor

Pagina Products nu arată suficient de bine. Când vezi lista nici măcar nu zici că te uiți la produse.
image

Să ne uităm pe buycott de exemplu cum arată listarea de produse.
image
link listare produse buycott

Nu e chiar grozavă, dar măcar așa ceva ne trebuie și nouă.

Trebuie să se vadă clar produsele:
image
Link demo din imagine. Puteți folosi ce template vreți voi, singura condiție e să arate a listare produse.

Alternativă este și asta:
image
https://blackrockdigital.github.io/startbootstrap-heroic-features/

Fix register page on laravel installation

Pagina register nu vrea sa mearga.

Primim

Oci8Exception in Statement.php line 177:
Error Code : 904
Error Message : ORA-00904: "ID": invalid identifier
Position : 121
Statement : insert into "USERS" ("NAME", "EMAIL", "password", "UPDATED_AT", "CREATED_AT") values (:p0, :p1, :p2, :p3, :p4) returning "ID" into :p5
Bindings : [Adrian Harabula,[email protected],$2y$10$8UXsjNro4nPIZzSTvzKQm.w3M0Zn73mnqe3q5OwdOtVzwU2Q0bLwi,2017-05-02 23:25:45,2017-05-02 23:25:45,0]

Moving out to appear.in for daily conversations and screensharing

For IP we have used appear.in and it seems it worked pretty well for the team. We can use it for our project too.

Link for our room.

Main points are:

  • works cross platform pretty well
  • it works out of the box, for the screensharing to work you need an easily instalable browser extension
  • supports group screensharing
  • audio and video communication for team communication
  • can be used for pair programming, we can work collaboratively on the same piece of code
  • overall a pretty good tool

Meeting #4 - Instalare mediu de dezvoltare, conectare la baza de date, scripturi php

Perioada

10 aprilie - 16 aprilie, săptămâna 8

Locaţie

various places, facultate

Rezumat

Ne-am adunat de-a lungul săptămânii și am lucrat pentru etapa 2 a proiectului.

Realizate

  • instalare mediu de lucru, php oci
  • conectarea la baza de date din php
  • proceduri, funcții
  • apelarea lor din php
  • tratarea erorilor

De îmbunătăţit

  • codul să fie scris modular, ce face unul, să fie integrat ușor în aplicație

Meeting #1 - Intro aplicaţie, discuţie use-case-uri, idei generale

Locaţie

C2 @ 6.00-8.30pm

Rezumat

Ne-am văzut 2h, am dezbătut idei generale despre proiect. Pentru prima întâlnire a membrilor, acest task a fost atins cu succes. Toate încep de undeva iar această întâlnire a fost startul nostru.

Realizate

Cel mai important, am vorbit despre ce a înţeles fiecare din aplicaţie şi am pus cap la cap idei începând să ne facem o idee despre ce am vrea să realizăm.

Ca un mic bonus am început şi discuţia legată de baza de date, ajungând să fim de acord cu 3 tabele strict necesare pentru aplicaţie: users, products şi categories.

De îmbunătăţit

Câteva sugestii, de luat în vedere în discuţiile viitoare:

  • să ne bucurăm de ceea ce am realizat deja, să ne facem mai puţin griji despre ceea ce urmează, nu trebuie să facem tot azi
  • după ce discutăm cu toţii şi ne punem de acord, cineva va trebui să fie responsabil pentru o decizie ce va fi luată în cadrul echipe.
  • probabil vom stabili câteva arii pentru proiect şi fiecare membru din echipa îşi va alege câteva arii de care răspunde
  • de exemplu după ce discutăm baza de date şi punem cap la cap, responsabilul cu baza de date va lua o decizie, decizia lui va fi asumată, adică trebuie să ştie foarte bine ce face şi cum afectează pe fiecare membru din echipă şi tot proiectul în ansamblu, să ştie foarte bine consecinţele deciziei, pentru că el va răspunde pentru tot ceea ce se va întâmpla cu baza de date şi cu membrii echipei care folosesc acea bază de date de acum încolo.

Script initializare baza de date

Ne-am putea inspira din scriptul create_user.sql de la lab1 psgbd

DROP TABLESPACE aplicatie INCLUDING CONTENTS CASCADE CONSTRAINTS; 

CREATE TABLESPACE aplicatie
  DATAFILE 'tbs_perm_0001.dat' 
    SIZE 500M
    REUSE
    AUTOEXTEND ON NEXT 50M MAXSIZE 2000M
/
    
CREATE TEMPORARY TABLESPACE aplicatie
  TEMPFILE 'tbs_temp_0001.dbf'
    SIZE 5M
    AUTOEXTEND ON
/    

CREATE UNDO TABLESPACE aplicatie
  DATAFILE 'tbs_undo_0001.dbf'
    SIZE 5M 
    AUTOEXTEND ON
  RETENTION GUARANTEE
/


drop user student cascade;
create user student identified by STUDENT;
alter user student default tablespace aplicatie quota 1990M on aplicatie;

grant connect to student;
grant all privileges to student;

Animația de la meniu, să o scoatem, să nu o scoatem?

Deși e frumos, creează unele buguri. Câteodată dă rateu dacă pagina nu are înălțime suficientă. Pe Edge este și un bug la scroll. (scrollul din bara browserului merge, dar la scroolul din rotița de la mouse nu revine meniul la înălțimea inițială)

Îl putem scoate lejer, pentru a ne putea face viața mai ușoară.

Adăugare pași instalare

  • copy database_design/psgbd-etapa2/Config/Config.php.example to Config.php and complete with valid database credentials
  • copy Dockerfiles/apache-virtualhosts/100-condr.conf.example to 100-condr.conf and complete with valid detailș files 100-condr.conf must exist.
  • add git deploy key for webhook; cp ~/.ssh/id_rsa ~/.ssh/known_hosts Dockerfiles/git-webhook/webhook/.ssh/

Meeting #2 - Baza de date, discuţie, setare strategie, use-case-uri

Locaţie

C405 @ 4.00-6.00pm, laboratow tw cu Andrei Panu

Rezumat

Am discutat cu dl. Andrei Panu despre aplicaţie pentru a ne clarifica ideile, din păcate doar eu şi Elisa am putut rămâne la discuţie.

În scurt timp am reuşit să finalizăm baza de date, Elisa explicând mai departe şi celorlalţi membri ceea ce am discutat.

Realizate

Designul bazei de date, complet, utilizabil. Se poate vedea aici: https://github.com/adrianharabula/condr/blob/master/database_design/modelare_bd.pdf

De îmbunătăţit

  • sincronizarea în grup

Meeting #6 - Status proiect

Ne putem vedea marți, după cursul la TW. Cei care au și cursul de pav pot veni de la 16.00. Eu voi fi până la 20.00. Locația: voila cafe.

Mai sunt cam 4 săptămâni de acum înainte:

  • 01-07 mai - liber
  • 08-14 mai - liber
  • 15-12 mai - liber
  • 22-28 mai - ocupată cu etapa 3 psgbd
  • 29-04 iunie probabil aici o să prezentăm.

Săptămâna aceasta vom plănui și vom discuta despre proiect, pașii care urmează.

Update users schema to be compatible with laravel

Some modifications:

  • make sure the password column is at least 60 characters in length
  • table contains a nullable, string remember_token column of 100 characters.

Verify the login/signup functionality.

Practici recomandate pentru cod bun în php http://www.php-fig.org/psr/psr-1/

Ca să scriem cod frumos, putem urmări recomandări legate de scrierea codului PHP

This section of the standard comprises what should be considered the standard coding elements that are required to ensure a high level of technical interoperability between shared PHP code.

Overview

  • Files MUST use only <?php and <?= tags.
  • Files MUST use only UTF-8 without BOM for PHP code.
  • Files SHOULD either declare symbols (classes, functions, constants, etc.) or cause side-effects (e.g. generate output, change .ini settings, etc.) but SHOULD NOT do both.
  • Namespaces and classes MUST follow an “autoloading” PSR: [PSR-0, PSR-4].
  • Class names MUST be declared in StudlyCaps.
  • Class constants MUST be declared in all upper case with underscore separators.
  • Method names MUST be declared in camelCase.

Full page here.

Meeting #3 - Instalare git la fiecare membru din echipă, configurare keys de conectare, testare comenzi pull/push, git add, git commit, prezentare repo

Pentru operaţiunile de bază, cum ar fi clone, pull, commituri simple am folosit git din terminal, însă după scurtă vreme ne-am dat seama că mai practic ar fi pentru toată lumea să folosim un client gui pentru git, preferabil cross platform, care să meargă la toţi la fel. Am ales gitkraken.

Permite:

  • vizualizarea grafică a schimbărilor din repo
  • selectarea fişierelor de pus pe stage
  • disponibil pentru win/linux/mac

Tabela groups nu conține rows în consecință pagina groups.php nu merge

De populat baza de date cu date test:

INSERT INTO GROUPS VALUES (1,'FII@Iasi','This is where your sleepless nights begin!');
INSERT INTO GROUPS VALUES (2,'Food Lovers','Life has never tasted so good! Join us for the best recipes!');
INSERT INTO GROUPS VALUES (3,'PSGBD','Never ask a DBA to move furniture, they are known for dropping tables. :)');
INSERT INTO GROUPS VALUES (4,'Web Technologies','I know I am going to heaven, cause I am already in hell! *web dev life*');
INSERT INTO GROUPS VALUES (5,'Software Engeneering','We will teach you how to work in a company!');
INSERT INTO GROUPS VALUES (6,'Cat Lovers','Meow');
INSERT INTO GROUPS VALUES (7,'Science','"Come on, it is not like it is rocket science, they tell me.."');
INSERT INTO GROUPS VALUES (8,'Education','Your future starts today!');
INSERT INTO GROUPS VALUES (9,'Highschool','Well, we still got time to do stupid thing...');
INSERT INTO GROUPS VALUES (10,'Clothes Lovers','');
INSERT INTO GROUPS VALUES (11,'Fashion','');
INSERT INTO GROUPS VALUES (12,'Daily Entertainment','');
INSERT INTO GROUPS VALUES (13,'Story of my life','*Dont even need a description*');
INSERT INTO GROUPS VALUES (14,'IFL Science','');
INSERT INTO GROUPS VALUES (15,'Football Lovers','');
INSERT INTO GROUPS VALUES (16,'PC Garage','');

Meeting #5 - Interfața web

Perioada

17 aprilie - 23 aprilie, vacanța de paște

Locaţie

various places

Rezumat

19-aprilie; ne-am văzut la el barin, 3h, am configurat virtualhosts, fiecare membru poate lucra direct de pe repo acum. Am stabilit foarte sumar cum sketchuim interfața.
20-aprilie; instalat la toată lumea virtualhosts

Realizate

Ne-am descurcat mult mai bine cu organizarea, am reușit să lucrăm remote săptămâna aceasta, fiecare începe să știe ce are de făcut.

De îmbunătăţit

Mobilizare să lucrăm constant la proiect. Nu e posibil să facem tot în ultima zi. Și nici să lucrăm din an în paște.

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.