It’s almost the end of Winter term and our Furever Matchup application is finally coming together. In light of all the progress that’s been made so far, I’ll be answering some questions about the project and my role in it.
Why did you choose your project, and has it met your expectations thus far?
I liked the idea of combining technology with animal adoption because it makes the process more engaging and accessible. Initially, I expected the project to be more straightforward, but the complexity of handling different user roles and managing user interactions made it more challenging than I thought. Still, seeing the system come together has been rewarding.
What was the most difficult challenge, and how did you solve it?
One of the biggest challenges was implementing user authentication and role-based access control. Since the project involves different user types—adopters, shelters, and admin—each with varying permissions, setting up secure and intuitive access was tricky. I used Flask’s built-in authentication features along with role-based logic to ensure the right people had the correct access. I had to learn a lot about balancing security with ease of usability.
What would you do differently on your project and why?
I would set up clearer milestones and deadlines earlier. While we managed to get the core features working, some tasks took longer than expected, which led to a bit of scrambling near the end. Better-defined expectations from the start would have helped keep things on track.
Do you feel your project was managed well or poorly, and how would you change things?
Overall, it was managed pretty well considering our group had different tasks and schedules to work around. Aligning everyone’s progress was sometimes difficult, but we managed to get new releases out in time. Regular check-ins helped, but I think being able to work in-person could have made things smoother.
Did you initially have doubts about your ability to complete the project? How do you feel now?
I initially had doubts, especially since I didn’t have much experience working on a full web app from scratch. There were times when debugging authentication issues or handling database queries made me wonder if I’d get everything working in time. But now, I feel much more confident in my ability to break down problems and find solutions.
Who will use your project? Will it benefit them?
Since we’re not working with a project partner, this was more of a proof-of-concept project rather than something that will be actively used. However, if it were fully implemented, the primary users would be animal adopters and shelters. Shelters could list pets, while adopters could browse, favorite animals, and get updates. The goal is to make the adoption process more engaging and personalized, helping both sides find better matches.
How have you handled getting ‘stuck’ on the project?
I’d take a break, then approach the problem from a different angle—sometimes looking at documentation, asking for help, or debugging step by step. Also, explaining the issue to a teammate often helped me realize what I was missing. As a last resort, I would lay on the ground staring at my ceiling until I could work through the problem.
What are 5 things you learned from working on your project?
- User authentication is harder than it looks – Handling login, password resets, and access control took more planning than I expected.
- MongoDB requires a different mindset than SQL – Working with a NoSQL database changed how I thought about storing and retrieving data.
- Front-end planning matters – Mockups in Figma helped, but I underestimated how much UI/UX design affects usability. I would spend more time on the CSS styling than the actual code itself.
- Good documentation is essential – When switching between tasks, having clear documentation made debugging and collaboration easier.
- There are always bugs – No matter how much I tested something, I’ll see a bug that I missed in the presentation videos. Even when there are no bugs on my end, someone else running the application will find one I can’t reproduce, which makes debugging especially tricky.