My Project
My capstone project is the PetPals Connect web app, which is a “dating app” designed to match shelter animals with potential adopters. The interface is a user-friendly interface where users can sign up and login to view potential available animals for adoption in shelters, and shelters can log their own animals into the app for more exposure. Users will be given a series of animal profiles with basic info in a card-format, and users can choose to click to view full details about the animal, then “swipe” right to be matched with the animal. Once a user matches successfully with an animal, we plan to have shelters be notified of the match and will provide contact details for I would love to eventually expand this project to include animals who are most in need of adoption, such as long-term residents and animals with special needs.
My Favorite Technology in This Project: What They are and What They are Used For
My favorite technology to work with in this project is NodeJS and Express. NodeJS is “an open-source, cross-platform runtime environment” allowing developers to create many server-side tools and web applications in Javascript. Express is a simple NodeJS framework for building web applications and RESTful API. Currently, I am working on the middleware to connect the frontend and our database, and Express is a really simple but powerful framework to build RESTful API’s. Having worked with Express and Node several times before in several classes and personal projects, it is always my go-to for backend development, especially API development. We are using an SQL database to store the animal profiles, user profiles, and admin profiles in our app, and Express to retrieve data from the database to send to the frontend.
Why Express and NodeJS?
I really enjoy working with NodeJS and especially the Express framework because the node package manager provides many reusable packages that can be used across all servers with a simple install, and it is very easy to generate handlers for routes and adding any additional processing middleware within the handling pipeline.
Additionally, Express and NodeJS are pretty much standard defaults for most web app’s due to their cross-compatibility with many platforms. They are also really great for integrating with many Javascript frameworks such as React, Angular, and Vue.
How can Express and NodeJS be improved?
Honestly I cannot think of how NodeJS and Express can be improved, due to how lightweight they already are and how easy it is to optimize them for performance. However, I do think that with how easy it is to manage routes and middleware with Express and NodeJS, it might be beneficial to have direct manuals available on the terminal to help users easily get to certain sections or see which packages might be available. For example, with C, there are man pages
available to us where we can view specific functions, so I think a more readily available like the man pages
in C would be greatly beneficial. In particular, having a more uniform set of recommended packages or libraries available on the terminal (since most app’s developed with NodeJS and Express would utilize the terminal at the very least for testing purposes anyway) would be a great benefit!
However, I am a huge advocate of Express and NodeJS and would not really change much about it. The ease of use, available community for support, and cross-platform compatibility allows me to recommend it for anyone starting out on their backend, web app, or fullstack journey!
Leave a Reply