9 ms·
Show HN: My girlfriend needed a Secret Santa web app, so I built her one
- dinosaurs 13y agoI built this. Girlfriend needed this to organise her christmas party and we couldn't really find a nice one on the internet.. So I built it myself. Mostly for her and as an exercise for myself (I learnt the basics of Angular and NodeJS along the way), but then my designer friend came up with the design and we put it live. Hope you enjoy it.
- taigeair 13y agoWhat resources did you use to learn NodeJS?
- dinosaurs 13y agoIt's been a long journey of playing around and never finishing small projects until I started this and then it suddenly clicked. I had a bit of PHP and Rails experience prior to this, but Node was pretty much new to me, except for the JS part. The whole async mindset got me in to trouble a couple of times on this project. The courses on Codeschool helped me tremendously, and this was fun to play around with: https://github.com/rvagg/learnyounode https://github.com/rvagg/learnyounode. I read a lot of blogs and some books (will get links later if you want), but mostly it was just trying until it clicked.
- taigeair 13y agoCool thanks!
- dminor 13y ago> we couldn't really find a nice one on the internet Really? When I needed one Elfster was pretty easy to find. Landing page looks nice though.
- jameszhang 13y agoGreat job, this seems pretty fun. Plus, I'm sure your girlfriend really appreciates it, which is always awesome :) Just one slight thing I noticed is that the "winsdom_scriptregular" font is quite hard to read.
- dinosaurs 13y agoThanks a lot! The font indeed is a bit hard to read. We were in doubt about using it for a while because of this, but in the end we liked the handwritten lettering.. so we went with it anyway. :)
- rpicard 13y agoWhat do you think about Lobster? http://www.google.com/fonts/specimen/Lobster http://www.google.com/fonts/specimen/Lobster Great idea for a web app by the way!
- Systemic33 13y agoThat font seems to still have the holly in it, and more readable.
- dinosaurs 13y agoI'll try that, might indeed be better! Thanks.
- kanamekun 13y agoLooks great!! Was just about to set up a Secret Santa on Elfster... was wondering how your site stacks up in terms of facilitating a gift exchange between friends/coworkers?
- dinosaurs 13y agoI don't know Elfster, but after a quick look it seems like they offer wishlists, gift exchange, etc? We send out an e-mail to everyone on the list saying that Santa is busy and asking them to buy a present for person x. The rest is up to them. Not as advanced I guess :)
- hablahaha 13y agoSurprised you didn't know about Elfster - I thought about making my own app too, until I saw Elfster. It's not quite perfect and seems to barely hold itself together (am I signed in, do I have account or do I not?!, etc..), but my friends and I have gotten by. I was able to invite people, remind them to join before the deadline and set exclusions on matchups (I didn't want significant others to get each other as well as people who aren't good friends). People have wishlists, like you mentioned. It's served us well enough for a one time thing, I'm not really sure what else I would need or want. I guess one could extend the concept and become a broker for the gigantic anonymous gift exchanges? Like the Reddit Secret Santa, except people order from you or send you the packages? I know of people who never got their present even though they had sent a present.
- Systemic33 13y agoMinor annoyance: The "Amount of cash to spend" slide bar, needs to have its color inverted. Otherwise, i think it looks great :)
- ninetax 13y agoIt's very pretty, what did you use to design the site visually? Just plain old html/css? A template? It's simple but good looking!
- dinosaurs 13y agoMy friend designed this, I did the front- and backend. It's just plain old HTML/CSS, using Jade for the views and Sass for the CSS, with some Bootstrap components. The grid especially was a great help.
- huangc10 13y agogreat idea! :) I've been using elfster for the last couple of years.
- erex78 13y agoHN people might not care about this sort of thing (ending a sentence with a preposition), but it screams out at me: "We'll make sure everyone knows for whom to buy a present!" vs. "We'll make sure everyone knows whom to buy a present for!" Good job on the who vs. whom though..
- gejjaxxita 13y agoThis is the sort of English up with which I will not put.
- erex78 13y agoWinston? http://public.wsu.edu/~brians/errors/churchill.html http://public.wsu.edu/~brians/errors/churchill.html
- gejjaxxita 13y agoyep!
- dinosaurs 13y agoSorry, not a native speaker. I'll fix that.
- midgetjones 13y agoSeriously?
- jrnkntl 13y agoHa, looks nice! You could monetize this by letting everyone fill out a wish-list and offer affiliate-linked suggestions based on what is filled in? (Same as http://namentrekken.be http://namentrekken.be does this; that wasn't an option for your gf? :)
- agilebyte 13y agoOr http://www.drawnames.com/ http://www.drawnames.com/ from the same company if you want it in English
- jrnkntl 13y agoNote; you should fix your SPF records, all mails end up in spam.
- dinosaurs 13y agoDoes it? I checked this with Mailgun yesterday and they told me to send through the API instead of using SMTP. So I did, tested with Gmail today (where it was ending up in spam) and it arrived in the inbox.. I'll check with them again.
- jrnkntl 13y agoStill, if you send through their API you still need to list mailgun.org in your domain's SPF records (because you define ...@memofromsanta.com as the sender).
- dinosaurs 13y agoTheir 'Check Records' tool tells me my records are fine. I'm on the chat with them at the moment, trying to figure it out. Thanks.
- twakefield 13y agoYou may also want to think about using our validator[1] to check the validity of the email addresses before sending. [1] https://github.com/mailgun/flanker https://github.com/mailgun/flanker or http://documentation.mailgun.com/api-email-validation.html http://documentation.mailgun.com/api-email-validation.html
- kyrra 13y agoTo add, it looks like my company is blocking the site as malware. Looks like it's on this list: http://cbl.abuseat.org/lookup.cgi?ip=95.85.5.100 http://cbl.abuseat.org/lookup.cgi?ip=95.85.5.100 > IP Address 95.85.5.100 is listed in the CBL. It appears to be infected with a spam sending trojan, proxy or some other form of botnet. > It was last detected at 2013-12-05 22:00 GMT (+/- 30 minutes), approximately 20 hours, 30 minutes ago. > This IP is infected (or NATting for a computer that is infected) with a spam-sending infection. In other words, it's participating in a botnet. If you simply remove the listing without ensuring that the infection is removed (or the NAT secured), it will probably relist again.
- derpson5 13y agoVery cool, an inspiration. How long would you say it took you? (hours of work) I ask as a young developer looking to gauge where he stands. Anyone have resources they could suggest for gauging fast/slow development for oneself?
- dinosaurs 13y agoI didn't track time on this, but it took me 5-6 days to get it all done. I wasted a lot of time though: I didn't know much about NodeJS backends when I started this, and next to nothing about AngularJS. I did a couple of things three times until I got them right; I used to work as a front-end developer until I got fired last month, so now I'm trying some new things. I'm glad it's an inspiration for you.
- joeperks 13y agoWell best of luck! Of course I don't really know, but you're obviously motivated and have skills, so I would bet you're now on the upswing. I am finishing something now that I hope to post to Show HN as well. Get some feedback, etc. Edit: AKA derpson5, decided to change my username. Sorry HN DBs, wasted a record.
- bm1362 13y agoIf you've built a simple web app, this is only a few hours of work. You'll spend more time handling the operational stuff like setting up DNS/Apache/EC2/WSGI. If this is your first app, I'd expect around a week as you figure out routing, templating, orms.. If you were using Rails, maybe 2 days? This would be very similar to any of the intro project/tutorials. Goodluck, though I have some advice: there are bigger problems to solve as a developer, this isn't one of them. This (and most web projects) are simply web forms that interact with a DB. It is no engineering feat.
- era86 13y agoDiggin it. Already using Elfster though!
- ftay 13y agoCurrently, when I fill out the form, I have no idea what's going out to the recipients - perhaps a mad libs-esque design would explain why each field, e.g. party title, is necessary :)
- dinosaurs 13y agoMay I ask what you mean with mad libs-esque? I did think about what you're saying while developing it but we kinda rushed things and didn't get to focus on the design much. Maybe for next year? :)
- atwebb 13y agoHi ______(target user) , My name is ______(yourself) and this ____(verb) _______(noun)! Hi Dinosaurs, My names is atwebb and this is madlibs! And you'd put the parens on the line, but I'm not sure of the markup for underlining here and feeling lazy.
- dinosaurs 13y agoI see. Great suggestion, might even use that for something else I'm working on :) Thanks for explaining!
- mosselman 13y agoSo?
- afs35mm 13y agoWhat platform did you use for deployment? When I dove into Node awhile back it seemed the most difficult part was finding a stable hosting solution...
- dinosaurs 13y agoI'm hosting this on a Digitalocean box, proxying Node through Nginx. Not sure if I did all that correctly, because that certainly was completely new to me, but it seems to work fine for now!
- tehwebguy 13y agoAwesome, now get an affiliate account at Amazon and make gift suggestions
- darkxanthos 13y agoThis is a brilliant idea.
- dinosaurs 13y agoIf someone tests this and their email goes to spam, would they be so kind to pastebin me the message headers/mime so I can try to solve that together with the Mailgun folks? Thanks a bunch.
- mandeepj 13y agoHow about creating a test email a\c by yourself to see if the email goes to spam or not? Your existing email a\c may also work.
- dinosaurs 13y agoIt doesn't go to spam in my Gmail, which it did yesterday. However, some people are reporting the mail going to spam. This is why I'm asking, I can't test it myself on any account.
- bcantoni 13y agoAnother good test is http://isnotspam.com/ http://isnotspam.com/. By sending an email from your app to check@isnotspam.com, you can get some good feedback on spam triggers.
- Erwin 13y agoI like http://www.mail-tester.com/ http://www.mail-tester.com/ -- that creates a unique address just for you, while isnotspam lets you search for anyone else's message.
- psychometry 13y agohttp://litmus.com http://litmus.com has a free trial with tools that might be useful for you.
- dmak 13y agoElfster works pretty well!
- mikeg8 13y agoThat may be true, I've never used Elfster, but the design of this landing page is far superior and more festive in my opinion. I probably wouldn't use Elfster after seeing this based on appearance alone.
- nej 13y agoThis is cool but using Ghostery plugin on Chrome (https://chrome.google.com/webstore/detail/ghostery/mlomiejdfkolichcflejclcbmpeaniij https://chrome.google.com/webstore/detail/ghostery/mlomiejdf...) reveals 16 different javascript trackers and advertising libraries used on this website. I know in the footer it states "Memo from Santa does not store e-mail addresses. We will not send you e-mails apart from the event e-mail, nor will we use your e-mail address for any other purpose." but as this being a free service it's kind of worrying. Should I be worried about giving the emails of all my relatives and friends?
- dinosaurs 13y agoI suspect this is because of the addthis social services. Will dig into this later! Edit: my Ghostery reveals just that: Addthis and Google Analytics. I could perhaps replace Addthis with just a Twitter/Facebook social button, but I liked the layout of the Addthis buttons.
- capnrefsmmat 13y agoI tried this earlier with three people. Two of them were told to give presents to the same person, and one person was left present-free. Not sure if you've fixed that already, but it seems like an important feature to get right...
- clarle 13y agoWith three people, wouldn't a valid Secret Santa solution have everyone knowing who's giving which present to who?
- colechristensen 13y agoYes.
- dinosaurs 13y agoBah :( Just read this and got out of bed to fix this. Thanks! EDIT: Should be fixed now :) Thanks again for pointing that out. I really need to adopt a TDD approach.
- antihero 13y agoSimple algorithm: Put them all in a list, shuffle list, assign each person to the next in list and the last to the first, in a circle.
- Evgeniuz 13y agoI recently did Secret Santa app too, but it is frontend only (no server side, to be ran with all people present). I did it mostly to play with AngularJS, but it has some nice geeky features like using truly uniform shuffling and Fortuna PRNG for more unpredictability. It's in russian, but interface is pretty obvious, so feel free to try it :) http://evgeniuz.github.io/santa/ http://evgeniuz.github.io/santa/
- elwell 13y agoload page. press "+" visible error message
- tspike 13y agoNice work! I built a similar site a few years ago and it's turned out to be pretty popular.