lukaswojnar / gift-registry

0 stars 0 forks source link

Celková funkcionalita #12

Closed lukaswojnar closed 8 years ago

lukaswojnar commented 8 years ago

Myslel jsem, že to bude fungovat tak, že:

  1. Uživatel Petr pořádá nějaký event, kde se budou dávat dárky. Např. vlastní svatbu. Chce vyřešit problém rozdělení dárků pro sebe mezi své příbuzné.
  2. V naší aplikaci si založí účet.
  3. Založí si nový event (Wishlist) a přidá do něj dárky, které chce.
  4. K eventu přidá e-mailové adresy (příp. i jména) svých kamarádů a příbuzných.
  5. Aplikace sama pošle pozvánku na Event na zadané e-mailové adresy. V každé pozvánce je odkaz do naší aplikace s kódem pro konkrétní Event (Wishlist).
  6. Uživatel Karel dostane pozvánku na Event od Petra a po rozkliknutí mu zobrazí informace o Eventu (název, datum, seznam hostů) a bude po něm chtít RSVP (pouze ano, ne).
  7. Karel se rozhodne, jestli se akce zůčastní a pokud ano, musí si zadat heslo (vytvořit účet).
  8. Jakmile Karel má účet a je přihlášený do aplikace, vidí všechny Eventy (Wishlisty), ke kterým řekl ANO a seznam dárků (vidí i cizí Wishlist, u kterého je ale jako host).
  9. Karel má možnost u každého dárku kliknout na tlačítko "Ano, tohle kupuji!", čímž si dárek zabere. Není ale možné, aby u dárku byl zapsaný neregistrovaný uživatel (nebylo by to propojené s e-mailem).

S tím, že bod 3. (Wishlist) by se ještě dal rozdělit na 2 modely Event a Wishlist - jeden Event může mít více oslavenců, tj. více Wishlistů, pokud bysme měli málo modelů. Respektive se tím dá řešit to, že Event má všechny uživatele a pamatuje si u nich, jestli jdou nebo ne (RSVP). Wishlist je potom pouze pro ty uživatele, kteří napsali, že jdou.

ovyhlidal commented 8 years ago

Za me osobne - libi se mi ta cast s pozvankou a registraci. Kazdopadne nevim, jak moc to muzeme jeste do tak velke miry predelavat, ja bohuzel na aplikaci muzu pracovat jen do patku, protoze v sobotu odjizdim a vratim se az 16. unora. To je taky hlavni duvod, proc bych to chtel mit do te doby co nejvic hotove...

lukaswojnar commented 8 years ago

No potřebujeme další modely a tohle by tam další přidalo.

jakubmacak commented 8 years ago

Ahoj, nápady to jsou pěkné, ale mohly přijít trochu dříve. Já jsem dnes zhruba 4 hodiny strávil programováním, které by bylo vlastně nepotřebné. @lukaswojnar - pokud bys byl ochoten něco předělat (např. rozdělení wishlistu a nastavení přístupu), nejsem proti. Rád bych ale taky měl projekt co nejdříve z krku.

lukaswojnar commented 8 years ago

Já jsem ale ten projekt takhle popisoval už v původním e-mailu, když jsem gift-registry navrhoval, tak jsem myslel, že se chápeme.

Rozhodně nechci vymýšlet práci pro práci. Pokud nám to uznají, nechal bych to klidně jak to je. Potřebujeme ale ty modely. Máte tedy nějaké nápady? Procházel jsem dnes asi 2 hodiny aplikaci a vůbec mě nenapadlo, co bych na tom mohl - kromě nějakých změn textů a vzhledu - udělat, protože nechápu tu funkcionalitu. Aktuálně se tak učím s OpenShiftem a můžu třeba ještě udělat Profil uživatele. Víc mě ale fakt nenapadá.

jakubmacak commented 8 years ago

To je možné, ale žádný komentář k tomu, co jsme tu s @ovyhlidal udělali, jsem nezaregistroval. Nyní to funguje následovně:

jakubmacak commented 8 years ago

Jinak nejsem proti něco předělat, když to bude ku prospěchu. Ta funkcionalita, co popisuješ, není zas tak rozdílná od toho, co máme. Přidal by se tak jeden model - Event. Jeden nám však stále chybí.

ovyhlidal commented 8 years ago

@lukaswojnar @kmaci Pridame tedy model Event a ja se mrknu na to, jakym zpusobem by se dali napsat ty notifikace. Kazdopadne si myslim, ze pokud bychom se zminili pri prezentaci o tom, ze jsme udelali i neco navic (napadaji me porad ty jednoduche testy), tak by to rozhodne byl plusovy bod ...

lukaswojnar commented 8 years ago

@kmaci To, co popisuješ, jsem z aplikace také pochopil, jenže: Pokud tam nejsou uživatelé, nejsem schopný jakožto vlastní Wishlistu přidat Assignee k jednotlivým dárkům z Wishlistu. Jako vlastník totiž vůbec nevím, jestli tam mám dávat vymyšlená jména nebo e-mailové adresy nebo něco jiného (podle mě by se tam měl rozbalit seznam uživatelů, z kterých si můžeš vybrat).

I pokud budu vědět, že tam mám dát e-mailovou adresu, tak Karel může mít adresu superman@seznam.cz , z čehož pak dle listu stejně nepoznám, komu jsem to přiřadil.

No a i pokud si budu pamatovat jak uživatele, tak jeho e-mailovou adresu a Karlovi dárek úspěšně přiřadím, tak ten se o tom v současném modelu nedozví, protože v systému nemá účet a nemůže se tak podívat do "Gifts I have to buy".


Takže bych to raději změnil na ten model, co jsem navrhoval. Ale samozřejmě jestli problém výše máte v plánu ještě nějak vyřešit. Stačí říct jak a já to udělám.

Jestli ne, vyřešil bych nějak ty hosty. Každý host na Eventu by potom byl běžný uživatel nebo byste tam udělali ještě jenom samotné e-mailové adresy, dokud se neregistrují?

Jsme schopní nějak vyřešit to posílání e-mailů z aplikace? Sám jsem to v Ruby ještě nikdy nerozchodil: používal jsem letter_opener + letter_opener_web.

jakubmacak commented 8 years ago

@lukaswojnar Chápu, jak to myslíš a asi zde bude zakopaný pes :) Já jsem pracoval s myšlenkou, že dárky, které mi chtějí ostatní koupit, si vyberou oni sami, kdežto ty jsi měl zřejmě na mysli, že dárky rozdělím já sám. Jde mi o to, že mi přijde divné přikazovat ostatním, co mi mají koupit. Spíše jsem myslel, že si vyberu, co chci druhému koupit já. Nepřihlášený uživatel by si pak mohl nechat poslat seznam dárků, které má koupit, na e-mail. Přihlášený je uvidí. @ovyhlidal Jakou jsi měl (máš) představu ty?

lukaswojnar commented 8 years ago

@kmaci Já jsem právě počítal s oběma možnostma :) Část můžu rozdělit, zbytek si oni vyberou. Jinak teď, když se přihlásím a podívám se do svého Wishlistu, tak tam mám možnost ty Asignee přidat, což zase podporuje tu verzi, kdy to budu rozdělovat sám..

jakubmacak commented 8 years ago

Ok, nemám nic proti tomu, aby tam byly obě varianty. To přidělování tam zůstalo, jelikož jsem jej ještě nestihl odstranit.

lukaswojnar commented 8 years ago

@kmaci Ok, byl bys schopný předělat ty modely, ať to funguje na ty uživatele a RSVP? Udělám k tomu tu front-end funkcionalitu.

jakubmacak commented 8 years ago

@lukaswojnar Mohu na to mrknout, ale dřív jak dnes večer se k počítači nedostanu.

ovyhlidal commented 8 years ago

Co se moji predstavy tyce, tak byla takova, ze clovek by dostal email s pozvankou do wishlistu. Kliknutim na link by se dostal do aplikace (tady je zakopanej pes s prihlasovanim nebo ne) no a pak by si mohl nejakej darek ze seznamu vzit a tim rict, ze ho koupi. Moznost toho, ze ja vytorim seznam a reknu Franta bude kupovat tenhle darek, Pepa tenhle me prisla takova trochu moc diktatorska :D

jakubmacak commented 8 years ago

@ovyhlidal @lukaswojnar Ok, tak to je pak současné řešení s několika změnami. Když přidáme pozvánku k seznamu a notifikaci, stále nám ale chybí jeden model.

ovyhlidal commented 8 years ago

Nezapomel jsi jeste na Udalost?

jakubmacak commented 8 years ago

Váhám, jak propojit Event a Wishlist. Udělal bych to tak, že Wishlist může existovat bez Eventu, ale Event musí mít nějaký Wishlist (jsme aplikace na správu dárků, ne událostí). Pro přehlednost bych udělal, že jeden Event má jeden Wishlist.

lukaswojnar commented 8 years ago

Pokud chceš nechat možnost samotného Wishlistu, tak bych uvažoval o těchhle 2 použitích:

Konkrétní atributy modelů můžeme diskutovat na Trellu. Tam je to přehlednější. Upravil jsem to aktuálně tak, jak si myslím, že by to mohlo být.

ovyhlidal commented 8 years ago

Urcite bych nechal moznost samostatneho Wishlistu ke kteremu bude mit moznost uzivatel pridat optinal Event s datumem atp...

lukaswojnar commented 8 years ago

A co ti uživatelé? Já bych je dal až k Eventu.. (Wishlist tak nebude mít u sebe žádné uživatele).

jakubmacak commented 8 years ago

Já jsem to myslel stejně jako @ovyhlidal. Wishlist existuje bez EVENTu - mohou se k němu zapsat neregistrovaní uživatelé. Např. na seznam dárků k Vánocům Event nepotřebuji (jak je to teď). K Wishlistu existuje EVENT - mohu pozvat uživatele.

lukaswojnar commented 8 years ago

I seznam dárků k Vánocům, ale má nějaký deadline (24. 12.) a v tu chvíli už je to vlastně Event.

Mně jde hlavně o to, aby tam ti uživatelé nebyli 2x. Jednou seznam uživatelů u Eventu (v Invitations) a podruhé přímo u Wishlistu, který je u Eventu. To je zbytečné, pokud u Eventu může být pouze jeden Wishlist (nebude rozdíl mezi Wishlistem a Eventem).

jakubmacak commented 8 years ago

Tím pádem ale přijdeme o jeden model a Wishlist s "anonymními" uživateli. Já chápu List a Event jako dvě rozdílné věci. Na Event mohu pozvat uživatele. Ti, pokud potvrdí svou účast, mohou v Listu zabrat dárky, které budou kupovat (případně jim je mohu přiřadit já). K danému listu se tak vážou jen účastníci Eventu (jsou tam jen jednou).

lukaswojnar commented 8 years ago

Mně přijde jako nesmysl mít dva druhy propojení "seznamu dárků" s "uživatelem" (jednou přes ID, podruhé přes e-mail). V tu chvíli budeš mít i dva druhy seznamu dárků, které musíš nějak vypsat. Seznam s dárky by se podle mě měl vypisovat stejně.

Nebylo by možné třeba pro každou e-mailovou adresu, které se přidá k dárku, vytvořit uživatele (bez hesla, bez možnosti se přihlásit) a prolinkovat to s ID na tohoto uživatele? Nebude tak rozdíl mezi těmi, kteří mají login a kteří ne.

ovyhlidal commented 8 years ago

No a je potreba k udalosti pridavat uzivatele? Nemuze udalost byt jen rozsirenym popisem toho, co se vlastne bude delat? Dejme tomu, ze si zalozim WishList pro Svatbu. WishList sam o sobe nese jen jmeno a popis, nema informace o tom, proc je to zalozeno, kdy akce bude, co se tam bude delat, jaky je program vecera a podobne...

jakubmacak commented 8 years ago

To by se pak asi mohla událost a list sloučit. Myslím si, že si to děláme složitější, než je vůbec třeba. Měli bychom začít víc programovat :)

Navrhuji:

  1. Ponechat stávající řešení anonymní rezervace. Klidně bych udělal zvlášť modely List a Gift jen pro tuto variantu, budeme mít jistotu splnění počtu modelů. Pro tuto část nebudeme řešit žádné notifikace. Uživatel dostane kód pro přístup k seznamu dárků, zapíše se, co koupí a seznam mu přijde na e-mail. Uživatel, který seznam vytvořil samozřejmě neuvidí, kdo mu co kupuje. Jednoduché řešení bez registrace.
  2. Druhá část bude řešení, co navrhuje @lukaswojnar - událost, seznam dárků, uživatelé, pozvánky, notifikace. Aby se uživatel mohl k události přidat, musí se registrovat. Výhodou mu budiž to, že uvidí, kdo na akci jde, kdy se koná a může si nechat zaslat notifikaci, když se bude blížit datum konání.
ovyhlidal commented 8 years ago

Ok, jen aby nam nevycetli to, ze mame zbytecne duplikovane modely pro Gift a List. Kazdopadne, jak si chcete ted rozdelit prace? Nebude toho asi uplne malo ... Udelame na trellu nejaky seznam "What is missing" a ten si rozdelime?

jakubmacak commented 8 years ago

Ono řešení, co navrhoval @lukaswojnar - tedy vytvořit uživatele bez hesla, je taky zajímavé. Otázkou je, abychom s tím pak moc nebojovali v Devise. Klidně to tak ale zkusme, já už fakt moc nevím, co by bylo lepší :) Když přemýšlím nad tím, co jsem před chvílí napsal, už mi to tak ideální nepřijde :D

jakubmacak commented 8 years ago

Ještě to teda můžeme udělat tak, jak navrhoval @lukaswojnar s tím, že Event = Wishlist a anonymní uživatele řešit nebudeme (i když mě bude trochu štvát, že jsem pár hodin dělal něco zbytečně :))

  1. Mám událost, kde se budou rozdávat dárky.
  2. Založím si účet, vytvořím list (událost), přidám dárky, pozvu uživatele.
  3. Ti, kdo se chtějí zúčastnit, si také založí účet a mohou si vybrat dárky, které mi koupí.
  4. Lze si nastavit notifikaci - zaslání upozornění před konáním akce.

Modely: Dárek, událost (list), uživatel, pozvánka, upozornění, ability + případně komentáře k události, abychom splnili počet modelů.

lukaswojnar commented 8 years ago

Souhlasím s @kmaci :) A jinak nemá smysl programovat, když nevíme co ;) Ať neděláme práci zbytečně..

Tady se v té diskuzi v těch modelech úplně ztrácím, zkusím to přepsat do Trella. Když tak komentujte, co je jinak.

(Teď už to je asi k ničemu, ale kdyby bylo potřeba, uživatele bez hesla lze v Devise vytvořit například takto: https://github.com/plataformatec/devise/wiki/How-To:-Email-only-sign-up)

ovyhlidal commented 8 years ago

Dobra, udelame prehled v Trellu a pak uvidime. Pomalu nam dochazi cas...

jakubmacak commented 8 years ago

@lukaswojnar Až budeš mít sepsané (upravené) modely, dej vědět.

ovyhlidal commented 8 years ago

Je blby, ze nemuze nejak vyuzit oboje, ale otazkou je, jestli by to potom nebylo pro uzivatele zbytecne neintuitivni ... Takhle to bude jasne dane, chces delat WishList, zaregistruj se. Chces koupit nekomu darek, tak se zaregistruj ...

jakubmacak commented 8 years ago

@ovyhlidal Jj, stejně jsem nad tím uvažoval i já. Bylo by to dost matoucí.

jakubmacak commented 8 years ago

Musím dnes končit. Zítra ráno klidně předělám modely a protřídím kód, který můžeme použít.

lukaswojnar commented 8 years ago

Koukněte do Trella, přepsal jsem to tam. Když tak ještě upravte (description kartiček můžete měnit, ne?).

ovyhlidal commented 8 years ago

Muzeme v trellu uplne vsechno :) Dneska uz jdu spat, rano bezim brzo do prace... V prubehu dne na to mrknu.