GithubHelp home page GithubHelp logo

rcervant / dog-adoption Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 12.35 MB

Dog Adoption App

Home Page: https://fetch-take-home-eight.vercel.app/

CSS 0.89% TypeScript 97.80% JavaScript 0.20% PowerShell 0.64% Shell 0.47%

dog-adoption's Introduction

Logo

Intuitive, customizable Dog Matching App

Product Website Β»

GitHub issues GitHub last commit


Table of Contents πŸ—ΊοΈ


About the Dog Matching App πŸ“™

The Dog Matching App is designed to help you find your perfect furry companion. We understand the importance of finding the right dog for your lifestyle, and that's why we've created this intuitive, customizable app.

With the Dog Matching App, you can:

  • Easily browse and search for available dogs.
  • Filter dogs by breed, age, and more.
  • Save your favorite dogs for future reference.
  • Generate a match with a single dog using our advanced algorithm.
  • Find dogs within a 25km radius of your current location.

We're committed to making dog adoption a seamless and enjoyable experience. Get started today and find the dog of your dreams!


Core Features 😊

Easy-to-Use Interface βœ…

Our user-friendly interface makes finding your perfect dog a breeze. With intuitive search and filter options, you can quickly discover dogs that match your criteria.

Comprehensive Dog Profiles πŸ”Ž

Each dog's profile is packed with valuable information, including breed, age, size, and more. We provide clear and detailed profiles to help you make the right choice.

Favorite Dogs 🐾

Save your favorite dogs to a personalized list for easy access. Our app stores your favorites so that you can revisit them at any time.

Intelligent Matchmaking 🧑

Our advanced matching algorithm considers your preferred pups and finds the perfect dog for you.

Nearby Dogs 🌍

Discover furry friends within a 25km radius of the current dog for potential playdates.


Getting Started with the Dog Matching App ⬆️

Table of Contents πŸ—ΊοΈ

Getting started with the Dog Matching App is simple. Just follow these steps:

1. Install Dependencies

Make sure you have Node.js (v18.7+) installed on your machine. Then, proceed to install the project dependencies by running the following command:

npm install

Before running the app, you'll need to set up a few configuration files:

  • .env.local: This file contains Next.js-specific environment variables.
  • .env: Prisma relies on this file to access the database URL.
  • .env.template (provided): Contains variables needed for both .env.local and .env.

Create duplicate copies of .env.template and name them .env.local and .env. Fill in the required information in these files.

.env.local

NEXT_PUBLIC_ORIGIN = "http://localhost:3000"
NEXT_PUBLIC_FETCH_COOKIE_NAME=<FOUND IN EXERCISE INSTRUCTIONS>
NEXT_PUBLIC_FETCH_API_URL=<FOUND IN EXERCISE INSTRUCTIONS>

.env

DATABASE_URL=

2. Setting Up the Database

You have two options for setting up the database:

  1. Local DB Setup with Docker (recommended)
  2. Cloud DB Setup

[1] Local Setup with Docker

  • Start by installing Docker Desktop (macOS/windows) or Docker Engine (Linux). Install Docker

  • Run the following command in a new terminal to initialize the Docker container with a MySQL database:

macOS/Linux

  npm run db:init

Windows

  npm run db:init-win

Now, you have a MySQL database running in a Docker container with the following credentials:

  • Database name: fetch_take_home_db
  • Database password: password
  • Port exposed: 3306

Replace the DATABASE_URL in .env with the URL provided by Docker.

# the default URL is found in .env.template
DATABASE_URL=

To connect to the database with Prisma, run the following command in a new terminal:

macOS/Linux

  npm run prisma:init

Windows

  npm run prisma:init-win

[2] Setup with a Cloud Provider

You can also run the app locally with a MySQL database provided by a cloud service like PlanetScale or Railway.

Replace the DATABASE_URL in .env with the URL provided by the cloud provider.

DATABASE_URL=<mysql://{MYSQL_DB_USER}:{MYSQL_DB_PASSWORD}@{MY_SQL_DB_HOST}:{PORT}/{MYSQL_DB_NAME}>

3. Running the App

You're now ready to run the app:

npm run dev

The app will be accessible at http://localhost:3000 in your web browser.

4. Troubleshooting

Troubleshooting tips for common issues can be found here: Troubleshooting


User Guide

Let's explore the key features of the Dog Matching App:

  • Start by signing up/logging in with your name and email to access the app.

sign-up-form sign-in-form

  • Explore and search for available dogs.

default-search-page

inf-scrolling

search-modal filtered-search-page

  • Sort results alphabetically by breed, with options for ascending or descending.

search-page-z-to-a

  • Save your favorite dogs for future reference and to generate matches. Favorites save across sessions.

heart-button-outline heart-button-filled

  • View detailed information about individual dogs.

dog-info-page

  • Access a comprehensive list of your favorited dogs.
  • Save your favorite dogs for future reference.

favorites

  • Generate a match with a single dog using the match button.

match-page

  • Logout when you've finished using the app from the user menu in the top right corner.

user-nav

Extra Features

Explore these advanced features:

  • Find dogs within a 25km radius of the current dog.

nearby-dogs

  • Utilize additional filters for age and multiple breeds.

search-modal-mult-breeds


dog-adoption's People

Contributors

rcervant avatar

Watchers

 avatar

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.