
Ask HN: What are some challenging web apps I can build? - devcheese
What are some challenging web apps that I can build for learning purposes? Thanks.
======
bobwaycott
\- human v cpu rock, paper, scissors (bonus round: real-time human v human)

\- human v cpu tic tac toe (bonus round: real-time human v human)

\- human v cpu battleship (bonus round: real-time human v human)

\- Wordpress clone

\- IRC clone

\- E-commerce site (focus on the product catalog and shopping cart, with a
checkout process that doesn't really have a payment integration, and a history
of orders)

\- A dashboard that provides visualization of data sets

\- Twitter clone

\- Facebook clone (basically, take your Twitter clone, remove the character
limit, add in some comment and group functionality, and add your IRC clone
into the mix)

\- Expand Twitter/FB clones with tweaks that let you manipulate how the
timeline is displayed to a logged-in user

Look at anything you've used, played, tried that you feel you understand how
it works. Then build it.

~~~
codegeek
"checkout process that doesn't really have a payment integration"

What do you mean by that ?

~~~
bobwaycott
Don't bother adding a real payment processor like Stripe. OP said for
learning. Tackle that later.

------
vanattab
Well since you asked... Build a website that teaches kids to code in python by
creating simple games. All the python should be written and executed on your
server so the students don't have to setup anything. The site should include a
simple 2d game engine framework that more experienced programmers can develop
tutorials for. I was going to build it myself but go for it if you want.

~~~
codegeek
a quick google search shows this
[https://www.penjee.com](https://www.penjee.com). looks cool

~~~
vanattab
Very close to what I am looking for. Thanks for the link.

------
adamwong246
1) What is an app you use often? 2) How would you improve upon that
experience?

Ok, build _that_

------
iisbum
Most web apps are not very challenging to build until you start thinking about
scale. Twitter for 100 users is easy Twitter for 1,000,000 users is much more
challenging.

~~~
dorfuss
Genuine question - could you please elaborate a bit on that? I sort of know
what you mean, but I'm just an amateur. So the problem with large scale is
creating algorithms that distribute and balance the workload on the servers,
database access speed, optimal cashing, keeping 100% uptime, backup,
separating different parts of the application and putting them on different
servers, concurrency and solving the problem of simultaneous access to same
resources? Anything else?

~~~
askafriend
I think a part of what you forgot is that often you're doing those things you
list "in-flight" and on an as-needed basis as the application scales. You
don't start out building Twitter for 10,000,000 users, you start out building
for 10 users. As the userbase grows, you've got to start thinking about how
you're going to change major components of the system safely and without any
hiccups.....and in a way that they still work with legacy systems, legacy
code, third party code, etc etc

You've also got to make key decisions about whether to scale vertically or
horizontally and often there's no one right answer in any of these scenarios.
You can re-build today's Twitter in any number of ways to get to the point
they are at now. However, the process of getting to today's Twitter would look
very very different depending on how much time, money, talent, and other
resources you had at each step along the way.

Basically, it's the _process_ or _transitions_ that are very notably
difficult, perhaps not the end implementation itself. You've also got to
balance these transitions with constraints like time and money. For example,
you can't just throw a bunch of AWS instances at an infra problem to buy time,
unless you've got the money.

And that's only from an infra perspective. From a product perspective there's
a whole slew of things that are needed at scale that you don't necessarily
need early on. One example is "how are you going to scale the cost of
user/customer support"?. When it's 100 people using your product, you can deal
with all the emails, but if it's 10,000,000 people using your product, can you
really handle each and every case that comes through? Do you have money to
hire a team to handle these cases? Can you build stuff into the product that
reduces case-load? etc, etc.

Anyway, I'm rambling now....perhaps someone more experienced than I could
share some better insights.

------
Gustomaximus
The one app I've always is an SMS forwarder on MS mobile platform. You'll make
one person happy if you build this.

~~~
avail
Make that two ;)

------
id122015
a system that allows people transparent voting of the so called arbitrary
laws, so we can verify and stop complaining about corruption.

Im not saying that democracy is the best form of government always. You
wouldnt want to stay in a place where the majority of people vote: 'F __k
freedom, we want islam '

~~~
nstart
seriously? I'm muslim and when you use the word islam as the opposite of
freedom that's actually offensive. Not here to correct or change your mind
about your view on Islam (not a topic for HN anyways) but just saying that
choosing your words more carefully is a valuable skill.

------
yolesaber
VR porn demo / teledildonic dashboard

