Inspiration
Starting a service based business is overwhelming on its own, but managing and growing doesn't need to be. There are plenty of solutions out there but each one does something a little different and also tends to pack their platform full of features that the average entrepreneur doesn't need. I synced up with some family friends to discuss their needs and we found that what they really want is a customer and job management portal with the ability to schedule and take payments. Keeping it simple, what better way to kick off an MVP using square for subscription and payments.
What it does
Serviceful is bound to be the stepping stone that gets service based businesses off the ground. We have the foundational infrastructure to handle customer and job intake, scheduling, as well as payment and custom subscription management.
As a service business owner you can sign up and start tracking customers, jobs, and create custom subscription packages to assign to jobs! Through our job portal you are able to assign a subscription to the job or you can accept payment via creating a link to send to the customer, or accept the payment directly on the UI!
How we built it
I have built this application using React with Nextjs. Nextjs also handles API routes to send backend calls to Square. I also use Pocketbase to track and control user information with the thoughts of more fine grain control in the future. For hosting, I used Docker to create images of the stack, then upload them to AWS ECR. Then I used docker-compose to host the application in AWS ECS.
Challenges we ran into
Time was a big drawback as I was a bit late to the party on discovering this hackathon! I was a part of company layoffs, found this hackathon that same day, the started a few days after.
Aside from time, some challenges I ran into included:
- How to define a technology project scope that I could deliver within the time frame, that I was also proud of. Although I am proud of the application I've created, I definitely had to cut corners.
- Learning the nuances of the Square API's, specifically the payment and subscription flows. Before building this application I had never worked with any payment workflows before. Luckily, the docs were great and I was surprised that all of my return values from the API were as-expected.
- Nextjs API routes and docker - I wasn't 100% confident in some solutions until I was knee deep into getting this hosted!
Accomplishments that we're proud of
In it's entirety, I'm proud of the application I have put together. It has majority of the feature-sets that I set out to complete and I am excited to have been able to put together a system that allows users to create custom subscription packages.
What we learned
Things definitely take longer than expected and even if you add enough padding, there's still a chance to overflow, so project management is important. I learned a lot about Square API's and feel like I can really rely on their system to create payment and user backed applications.
What's next for Serviceful
This whole time I've been rushing to the finish line, and in the last few days I've been dreaming of the great refactor. I want to:
- Flesh out the foundational components I've got in the application
- Add form and database validation
- Less data tracking in Pocketbase since Square API can handle all data needs
- Set up multi-tenant capabilities and Implement 0Auth so other square sellers can use the app
- Add state management that works offline.
- Build a proper payment layer so I can integrate all square's payment features and have them easily and sensibly placed in the workflow.
- Add a proper landing page
After I'd love to get this production ready onto the square marketplace!
Built With
- amazon-ecr
- amazon-ecs
- amazon-web-services
- docker
- docker-compose
- mantine
- nextjs
- pocketbase
- react
- twilio
Log in or sign up for Devpost to join the conversation.