DEV Community

Jonathan
Jonathan

Posted on

Lessons from building a full-stack web application

SmashIt! Github Repo

I built a full-stack web application.

A full-stack application is a complete software application that includes both the front-end (what the user sees and interacts with) and the back-end (the server, database, and application logic).

Smash It! is a performance tracking app for Table Tennis. Users can record and track their performance and compare it to other users within distinct groups.

Coming up with an innovative idea is challenging. What can help with the process is identifying a problem. The inspiration for Smash It! came about to solve a problem my coursemates and I faced during our web development bootcamp.

We would play table tennis every chance we got and we were quite competitive.
We needed a way to record and track our performance against one another. We tried using a whiteboard and spreadsheets but these proved inefficient and cumbersome. Therefore, for my capstone project, I decided to build an app that would solve our problem.

My capstone project was a proof-of-concept built in a couple of weeks. However, I wanted to see if I could build a production ready application that real users could use.

It takes time to build a good app. I learnt a tremendous amount, both on the technical and non-technical side of things. Below are a few things I learnt.

Non-technical

Marketing

Getting users engaged with your products/services, even when it's free, can be challenging. I thought that I'd build the app, release it into the wild, and the users would be pouring in. That is not the case, you need to:

  • Target the right audience
  • Convey that your products/services truly provide value and is worth being consumed

Trust

While pushing for the app to be used. A comment was made from a potential user that they were apprehensive of sharing their personal data on the app. They didn’t know how the data was going to be used. The data could be used unethically. Not my intentions, however, users want to trust that their data is being handled ethically.

Technical

Database Design

For this project, I put some thought on how to design and implement the database schema. For data-driven applications, how you store and retrieve the data is important for efficiency purposes. This becomes evident as the application scales to handle more data.

Other Technical Areas

  • Session Management
  • User Verification

Conclusion

Building a full-fledged production ready software application will teach you a lot. Getting users to use it is another problem to solve, and there can be a lot of non-technical requirements to consider, especially if you plan to make a business out of it. No wonder software companies are backed by so many teams in various departments. Building scalable software ain't easy. But you have to start somewhere.

Top comments (0)