GithubHelp home page GithubHelp logo

petprofiletailor's Introduction

Pet Profile Tailor

Inspiration Behind and Introduction to Project:

I worked as an adoption counselor in animal shelters for ~5 years and although pet profiles are vital to catch adopters attention and boost adoption rates, there's only so much creativity a person can have at the crack of dawn. Coffee can only do so much ๐Ÿ˜›

So I was inspired to create this site which empowers animal lovers to help adoption counselors create impactful, fun, and tailor-fitted adoption profiles! After signing up, users can submit new names and descriptions,save favorites and follow other users. Users can easily search and filter through community submitted names and descriptions.

PPT1-1.webm
PPT1-3.webm

How It's Made:

Next.js, React, Next-Auth, JavaScript, Tailwindcss, CSS, HTML5, MongoDB, Mongoose, Cloudinary, Node Mailer, SendGrid, SWR

##Optimizations:

Potential Future Optimizations:

  1. Add SWR to the profile pages
  2. Although it currently works for keyboard users, I want to improve the accessiblity for screenreaders
  3. Add BYTE, a virtual chat gpt dog that helps people find names or built pet profiles
  4. Add a messaging feature

Lessons Learned

  1. Problem:

When trying to install npm install -D @tailwindcss/forms I kept Getting an error code:

npm ERR! code EWORKSPACESCONFIG npm ERR! workspaces config expects an Array

Result: Tried a few things after googling, but what ended up fixing it was deleting the workspaces in my package.json and redoing the npm install -D @tailwindcss/forms"

  1. Problem: Needed to install multiple packages for a tailwind component

I kept getting "module not found errors" but after installing the modules with npm they worked.

petprofiletailor's People

Contributors

jsmarsh813 avatar

Stargazers

Jeremiah avatar

Watchers

 avatar

petprofiletailor's Issues

Settings page ==> make user enter old password before they can change their password

For security, before user can update their password on the settings page, they should be required to verify their current password.

Special Note: The user should be able to update their name and email without confirming their password, since not every user has a password. Ex: users which sign in with magic email links may not have a password.

CHALLENGE:

Some users don't have passwords but may want to add a password later. Check user in database

  1. If they have a password, give them a form which allows them to enter the current password and change it
  2. if they do not have a password, send them an email link with a token (reuse the reset password option pathway). Once they click the link, they can add a new password

Settings page ==> improve security of the email change process

Currently, users can easily change the email if they are signed in. Some users do not have passwords, so passwords can't be used to validate the change.

Suggested pathway:

  1. User types the new email they want to use (validate it has a valid email format)
  2. link sent to new email to confirm change (avoids unintentional typos). Have it valid for only a certain time period
  3. click link to confirm, once user is on the given link, change email in db
    3b. add field which stores history of past emails used? this way if a user states their account was stolen, we can confirm the previously used emails? So store old email in the past-emails field?
  4. send message to old email, allowing them to revoke changes for 30 days

BUG: application error client-side exception

bug: this application error message will briefly flash, before the user is directed to a new page

This bug randomly appears, I've mostly noticed it when signing out.

Vercel logs only show 200 and 304, so there's no obvious errors. The page refreshed before the browser information could be looked at

Despite logging in several times with different accounts, and signing out from different web pages, the error is not currently reoccurring.

image

Future: community section

Sortable by tags based on what they need help with:
*name *description *fundraising *photography *event *other

Change magic link wording and behavior

Make it clear to new users that the magic link is only available to registered users, fix capitalization

"Not registered yet? Only registered users can use the magic link feature, please register with the link below"

image

Track user contributions (name submisisons)

in MongoDB, add an array to users, which contains the name._ids of names they've submitted to the database.

Later on this can be used to give users a specific amount of points for their contributions

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.