Skip to content

Group Project # 2 - Interactive Full-Stack application where a user can post their pet for adoption. Other users can then message the owner to meet and potentially adopt the pet.

Notifications You must be signed in to change notification settings

marcelamejiao/pawfect-match

 
 

Repository files navigation

Pawfect Match

Table of Contents

Description

Our goal for this collaborative project was to build a real-world full-stack application from scratch.

Concept

Our group created Pawfect Match, an application where a user can post their pet for adoption. Other users can then message the owner to meet and potentially adopt the pet if it is their "perfect match".

Our motivation for creating this application was to:

  • Help give adoptive pets a second chance, thereby saving lives by reducing the number of animals living (and being euthanised) in shelters
  • Help people access the psychological, emotional and physical benefits of having a pet that matches them perfectly
  • And, help people save money on the upfront costs of getting a pet (eg. adopted pets are already vaccinated, microchipped).

User Story

AS A pet owner whose circumstances have changed
I WANT a platform where I can post an ad for my pet
SO THAT I can choose a good person to adopt my pet.

Currently, Pawfect Match achieves this by allowing its users to post pets and interact via public comments on the post. Possible features that could be implemented in the future to improve the application include:

  • Private messaging between current and potential owners
  • Making appointments to meet through the application
  • And, suggested profile matching for pets needing adoption and people wanting to adopt.

Tools and Technologies Used

To create Pawfect Match, our group used:

  • HTML
  • CSS
  • Bootstrap
  • Javascript
  • Node.js
  • Express.js
  • Express-handlebars
  • MySQL2
  • Sequelize
  • Dotenv
  • Bcrypt
  • Express-session
  • Connect-session-sequelize
  • Nodemailer
  • And, Heroku.

Other Concepts Used

  • ES6 JavaScript features: classes and constructors
  • MVC (Model-View-Controller) design pattern
  • And, authentication.

Screenshots of Application

Screenshot of application

Screenshot of application

Screenshot of application

Screenshot of application

Screenshot of application

Screenshot of application

Screenshot of application

Screenshot of application

Access

Code Repository

The repository where the code is saved is on Github. To access it, click here.

Live Application

Our application is deployed on Heroku. To access it, click here.

Installation

To install necessary dependencies, run the following command:

npm i

Usage

To use the application from the command line:

  1. Open the repository in your terminal or bash.
  2. Add a .env file in the same format as this file.
  3. Log into MySQL in the command line by entering mysql -u root -p and the password in your .env file.
  4. Create the database by entering SOURCE ./db/schema.sql;.
  5. Quit MySQL by entering quit.
  6. (Optional) Seed the database with sample data by entering npm run seed in the command line.
  7. Start the server by entering npm start in the command line.

Alternatively, to use the live application, click here.

Credits

  • We used Bootstrap for most of our CSS styling.
  • We used the express-handlebars package to use Handlebars.js as our templating engine.
  • We used the MySQL2 and Sequelize packages to connect to our MySQL database and perform queries.
  • We used the dotenv package to use environment variables to store sensitive data needed to run the application.
  • We used the bcrypt package to hash passwords.
  • We used the express-session and connect-session-sequelize packages to add authentication.
  • We used the nodemailer package to send email notifications.

Authors

About

Group Project # 2 - Interactive Full-Stack application where a user can post their pet for adoption. Other users can then message the owner to meet and potentially adopt the pet.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 51.2%
  • Handlebars 43.9%
  • CSS 4.9%