Get the highlights in your inbox every week.
What to know before developing your first web app
5 lessons learned when developing my first web app
Read about lessons learned by one university student when creating his first web app, an online cyber cafe management system.
I developed my first web app as part of my final project in college. Instead of developing a web app only for the purpose of completing my project, I chose to develop one that could solve a real-world problem. I decided to create Cyber Manager, an online cyber cafe management system for cyber cafe administrators, which has been downloaded nearly 3,000 times since I first uploaded it on SourceForge.net in 2011. In this article, I'll walk through five lessons I learned during the process, which might help you during and after developing your own web app. I'll end with a quick look at Cyber Manager and how it works.
Lesson 1: Don't search for a project idea. Search for a problem to solve.
If you want to try creating your first web app, instead of thinking of a project to develop, think of a problem to solve. A real-world problem will challenge you and provide opportunities to expand your skill sets in practical ways that can help you professionally. The process will better prepare you for professional development work because you'll have experience solving real problems through coding. You will also get a better understanding of coding standards and best practices.
Lesson 2: Find a solution for problems around you.
When I was in school, I used to go to my friend's cyber cafe to learn web development using an online tutorial. I spent several hours a day, several days a week in his cafe. In exchange, I managed the shop during his breaks. That's how I stumbled upon the idea for Cyber Manager.
Lesson 3: Consider developing solutions using open source tools.
After deciding what to create, I needed to focus on how to develop the project. ASP.NET was one popular programming language option among university students, as was Java. Each option had pros and cons. I decided to develop my project using PHP, Apache, and MySQL, a popular, scalable, and reliable open source language stack. I chose PHP because it's easy and secure, and offers great developer community support. Using these tools also gave me experience working with their open source communities.
Lesson 4: Mentorship matters more than the technology stack.
When you start working on your web app project, prioritize finding an effective mentor rather than focusing on choosing an efficient technology stack. Technology is something that will only deal with the project, whereas a mentor is someone who will deal with you—a mentor will help you make a better app, while also helping you improve as a developer and a professional. Although many universities offer in-house mentorship, students should also look out to external sources to find a personal mentor who will help them acquire in-demand industry skills.
I was lucky to get my friend as a mentor for my final year project. He was an experienced PHP developer turned entrepreneur who recently had launched his small tech startup offering web development services around the city. I sat with him and worked out feasibility aspects of my project, and he offered me advice that added value to my project. At times, he oversaw my progress and would use my app, testing it out in unexpected ways that helped identify bugs and performance issues. This helped me improve my app and make it scalable.
Lesson 5: Find real users to test and use your real-world app.
No app is a finished app until it is tested and used by its intended audience. If you want your project to be a feasible, reliable, and usable one, you must get your intended users to test it and to provide feedback. Real-world testing and feedback is crucial to improving the quality of your app, and essential for developing a project and a product that end users want and will enjoy using.
A look at my web app: Cyber Manager
My first web app, Cyber Manager, is a web-based cyber cafe admin-management portal built using PHP/MySQL.
A screenshot of the dashboard of my first web app, Cyber Manager
As you can see in the screenshot above, the app has nine modules, which include:
- Manage Customer: Keep track of customers in an online database. Admins can add, edit, search, and delete customer records using this module.
Manage Customer: List of customers registered with the cyber cafe.
- Customer Login: Log the customer onto a cafe computer. As soon as an admin logs a customer onto a computer, their time tracker starts and will end when the admin manually logs them out. Upon logging out the user, the admins sees the total time and a billing amount.
Customer Login module shows active customers logged in and using the cyber cafe services
- Manage Bills/Invoice: Generate bills based on the customer's service usage. A bill is auto-generated by taking into account the total computer use time and any additional services used, such as printing documents or renting a web camera. This module also lists history of bills/invoices generated so far.
Bill Module showing a recent bill generated along with its charges and services used
Manage Services: Add, edit, and remove available services in the cafe. An admin also can take a print of a handout listing all of the available services in the cafe along with their respective service rates.
Service module showing an editable list of services/equipment offered by the cyber cafe
- Print Rate Card: Print a service rate card for the cafe listing available services and peripherals along with their respective rates.
- View Customer Cards: Generate and view customer membership card for each customer with their name, date of birth, customer identification number, and membership expiration date.
Customer membership card as auto-generated by the system
- Expired Membership Report: List of customers whose proof of ID is expired, which means it's invalid for using cafe services, according to government requirements. Admins also can see the list of customers whose membership has been expired as is due for renewal, and they have an option to send the customer a reminder email to submit a new valid ID.
So this was the overview of my first web app that I developed as part of my university final year project in March 2011 and hosted on SourceForge. Since then, it has been downloaded nearly for 3,000 times. I plan to add improvements and new features soon.
Feel free to check out or download Cyber Manager from SourceForge—I'd love to hear your feedback.