

How I built an application in two days - rm2kdev
http://www.rm2kdev.net/2014/02/built-full-application-two-days/

======
janstenpickle
Also sorry for being "that guy" but I have to point out that SSL is not used
anywhere in the app, including the credit card entry in the billing section.

Nice work though! :)

~~~
rm2kdev
Thanks for your compliments and no worries you can be that guy today :P

Regarding the payments side of things I am using the client side stripe
library. Basically what happens when you input card details and hit submit a
secure async push is made to stripe's servers where the card details are
stored a call back is made with a token to your browse and ONLY that token is
sent to my server.

While having SSL would be nice and make the clients feel more comfortable rest
assured the payments side of things is still secure

SSL WILL BE ADDED :) Probably over next weekend my next personal 'sprint'

------
tim333
Nice site. I like how the colour changes as you register. Did you consider
digitalocean? Seems like it might be 1/3 the cost with better performance?

~~~
rm2kdev
Thanks for the suggestion, I replied to the other gentlemen about this the
only reason I didn't consider them was I had no prior experience or knew
anyone who'd used them before. Their pricing looked 'too good to be true' but
if HN is suggesting them I will defiantly look at their services soon :)

------
carlosdp
It looks like you are over-paying for a lot of services. Like someone else
mentioned, for starting out something like Linode or Digital Ocean would be
cheaper. (and they don't charge for bandwidth until over 1 TB I believe)

Also, 8c/message for SMS is very high. Twilio has international SMS service
that ranges from .75c to around 3c a message. (disclaimer, I have interned
there)

On the implementation, it also seems like a NoSQL DB like MongoDB might not be
the best choice. This is because it seems like you are dealing with a lot of
relational information, which is significantly more complicated to implement
in a non-relational database that is not designed for that.

These are just my opinions. I like the front-end design!

~~~
rm2kdev
Thanks for your suggestions, i had not considered Digital Ocean purely because
I'd not had any experience with it or know anyone who's used it before.

Regarding the relational data that is one of the challenges I faced when
building the application. I used NoSQL because I had recently had some
experience with mongo and mongoose thought it would be easier then I realised
I would have to begin making multiple selects and concatenating data together
to bring back average ping stats for the dashboard etc which made it somewhat
harder.

------
blueblob
None of your text inputs seem to allow me to enter anything in firefox 26 on
archlinux.

~~~
rm2kdev
I'll take a look into that tomorow!! its 11:30pm here :(!

~~~
noir_lord
admin.css - Line 6846.

padding: 20px 10px; which firefox obeys and pads in from the edges meaning the
actual "viewport" is none-existent.

If you reduce the padding down to 2px the text will come back but the vertical
height on your inputs will reduce (I leave that to you) :).

[http://i.imgur.com/Ap7fA6r.jpg](http://i.imgur.com/Ap7fA6r.jpg)

~~~
rm2kdev
Thank you :) I will download and install a copy of firefox see if I can fix
this up!

~~~
noir_lord
Just in case (since you don't have FF installed you might not be a user) grab
Firebug at the same time :).

Makes life much easier.

Also check out nexmo I used them on a project last year (UK based) and they
where excellent, also looking quickly 6.5c per text ;).

~~~
rm2kdev
Thanks a lot, I used to be a Firefox user when I was younger maybe 7 years
ago. It started to get very 'windows vista ish' and my really really poor pc
couldn't handle it so maybe 4 - 5 years ago I switched to chrome...
unfortunately that seems to be heading down the same path.

Im not sure what modern firefox so lets see :D

~~~
noir_lord
I use them interchangeably as some of the FireFox tools are better than
Chrome's and vice versa (it's also handy for impromptu functional testing to
switch around as I catch stuff before proper testing does).

~~~
rm2kdev
Regrettably that was my poor decision to launch without checking it in
Firefox, nevertheless bug fixed now :) learn from your mistakes haha

------
robmcm
I like it, impressive for such a short amount of time.

I did notice the site is very slow, is that your hosting (HN effect) or the
client side stack you are using? Navigating the pages was taking 5-6 seconds
for me.

~~~
rm2kdev
That would be the HN Effect. The post has exploded the site receiving
something like 10 - 50 hits per second.

It may also be the server is hosted in Sydney on Amazon's ec2 so if your far
from Sydney Australia that might also contribute to a page load time of about
2 - 3 seconds :) the rest is probably HN Effect

~~~
robmcm
Oh right a 21,000 mile round trip would explain some of it ;)

~~~
noir_lord
An absolute minimum of 112ms of it ;).

------
randlet
On your register page you have "27/7" support. Is that meant to be 24/7 or is
"27/7" something which I'm not aware of?

~~~
rm2kdev
Thanks for pointing that out! ill fix it :D thats a typo or is it some kind of
new age support

~~~
robmcm
Also on the billing page "You are currently on the tophat plan" (no space)

~~~
rm2kdev
That's because I'm using the planid to display the name I have to do some back
end changes to subscriptions so I can have 'Friendly names' :)

------
aldarn
None of the login / register / etc links are shown for me. In fact I can't see
any links in the navbar at all... Using Chrome v24.

Also, where is the pricing plan? Maybe that's just another link i'm missing
but feels like this should be on the homepage / register screen somewhere (i
munged the URL to sign up).

Seems pretty cool though.

------
ATLobotomy
I wish that hyperlinks could be used in a more Wikipedia like sense (I.e.
linking to description s, other relevant content, instead of just being used
to get links for Site Loader.

------
jpdlla
You should make “PLEB Stack” open source. Great work!

~~~
rm2kdev
Early on saturday it was LEMP Framework :) i added some more and cleaned it up
a little then it became PLEB :P
[https://github.com/rm2kdev/LEMPFramework](https://github.com/rm2kdev/LEMPFramework)

Feel free to check out lemp :)

------
gremlinsinc
Nice design/layout, not bad for a 2 day project.

~~~
rm2kdev
Thanks, i cant take all the credit i am using twitter bootstrap for the ux

------
dclara
Nice!

------
almosnow
Sorry for being "that guy" but this is not a full application neither did you
spend two days making it work.

:'(

~~~
rm2kdev
I'm sorry you feel this way :( but I understand it is a small application. By
Full Application I meant 'completed the goals it set out to do' obviously no
application can ever be truly finished and I will be adding more over time :)

------
sneak
Yes, let me use a monitoring system running on a single instance to let me
know when important things go down.

How about no?

It's 2014. HA is part of the MVP when you are charging people money or
providing a business-critical service (even if it's free).

~~~
sehrope
> It's 2014. HA is part of the MVP when you are charging people money or
> providing a business-critical service (even if it's free).

Business critical and free are mutually exclusive. A free service might be
business critical for a business that relies on it but that's the faulty
expectation of the business, not the provider. You get what you pay for.

From the article:

> 1\. After evaluating a bunch of cloud server hosts I decided to go with an
> Amazon EC2 Tiny Instance running Ubuntu 12.04 my reasoning behind this was
> influenced by price and the technologies used in the development of the web
> application (which will be explained in a section below) namely NodeJS and
> MongoDB this comes at a cost of roughly $15/mo we’ll also be needing 1
> elastic IP address and a few entries in route53 + $1

I'm a big fan of AWS but this won't work. I'm assuming that the "tiny"
instance is an m1.micro. If so then then it will CPU throttle at the slightest
load. You can run a whole bunch on a small slice of CPU but m1.micros are a
different animal. Anybody that has tried running a build server on one knows
that a compile alone will hang the instance.

Again, you get what you pay for.

~~~
rm2kdev
While I agree with every point you make here about the EC2 Tiny m1micros. A
good test for the instances was this article since posting this the site has
received over 10,000 visitors and at one point in time it was dealing with 10
- 50 visitors a second while this isn't ideal to run 'business critical'
software on a tiny instance if it ever had to deal with such a large array of
consumers on a daily basis it would be scaled immediately to something more
robust.

However the past 10 hours have prooven that the m1's do have some balls :)
both the site and the processing exist on the same machine and have only
marginally struggled with 0 downtime from the HNEffect

