Coder Social home page Coder Social logo

yumeangelica / needypet Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 3.47 MB

Full-stack Pet Care Management Application

Home Page: https://needypet.azurewebsites.net/

License: Other

JavaScript 34.07% TypeScript 15.73% HTML 0.52% Vue 44.32% CSS 4.76% Shell 0.60%
express mongodb nodejs vuejs jest supertest eslint ionic javascript typescript pinia docker docker-compose nginx azure

needypet's Introduction

NeedyPet - Pet Care Management Application

Before using the application, read the user guide for detailed instructions on how to use NeedyPet.

Introduction

NeedyPet simplifies pet care coordination within households and pet care facilities. This user-friendly application empowers family members and pet caretakers to collaboratively manage pet health and activities. It ensures everyone is informed about the pets' daily needs and care activities, preventing common issues like overfeeding or missed medication, thus enhancing pet care through technology.

Features

  • User Registration and Authentication:

    • Registration: New users create an account by providing a username, password, email, and selecting their timezone.
    • Login: Users log in to access their profiles and manage pet details. Passwords are securely hashed and stored.
  • User Profiles:

    • Profile Management: Users can update their profile information including name, email, password, and can delete their profiles.
    • Roles and Permissions:
      • Pet Owners: Can add, update, delete pets and manage detailed pet profiles including care needs.
      • Carers (Backend Only): Can complete needs but cannot modify pet ownership details or toggle need statuses. Frontend support for carer roles is planned.
  • Pet Management:

    • Owner users can manage pet details such as name, birthday, species, breed, and specific care needs.
  • Care Activities (Needs):

    • Needs are specific care activities required by pets, such as feeding, walking, or medication.
    • Need Details:
      • Category: Type of care activity (e.g., Feeding, Walking).
      • Description: Detailed information about the need.
      • Duration or Quantity: Needs can specify a duration in minutes or a quantity in milliliters or grams.
    • Need Management:
      • Needs can be added, viewed, updated, deleted, or toggled by owners; only active needs are carried over to the next day.
      • Carers can view and complete needs.
    • Daily needs algorithm:
      • Needs are automatically carried over to the next day and set to uncompleted if they are not toggled inactive with a toggle switch from need card. Updating happens at midnight in the user's timezone.
  • Activity History:

    • Logs of all care activities (completed, missed, or pending) provide comprehensive monitoring of pet care.
  • Responsive Design:

    • The application is optimized for various devices, ensuring a consistent user experience across desktops, tablets, and smartphones.
  • Security and Data Integrity:

    • Robust error handling and authentication mechanisms ensure data integrity and privacy.

How to Use the Application

  1. Initial Setup:

    • New Users: Register via the landing page by entering required details.
    • Returning Users: Log in to access your account.
  2. Pet Management:

    • View your pets on the homepage after logging in.
    • Add new pets by clicking Add Pet, filling in details, and clicking Save.
  3. Viewing and Editing Pet Details:

    • Access pet details by clicking on a pet card.
    • Edit pet details or delete pets as needed.
    • Add needs by clicking Add Need and filling out the relevant information.
  4. Managing Needs:

    • Enter need details in the Add Need modal and save.
    • Needs can be managed on the need card on the pet’s page; add, edit, delete, toggle inactive/active, and complete as necessary.
    • Needs are automatically carried over to the next day and also set to uncompleted if they are not toggled inactive.
  5. User Profile and Security:

    • Update personal details or log out via the Profile button.
    • Deleting your profile will remove all associated data and log you out permanently.

Upcoming Features in the Next Versions

The following features are planned for the next version update of NeedyPet, enhancing functionality and user experience:

  1. Caretaker Support Throughout the Application:

    • Extending caretaker functionalities to the frontend, allowing seamless management of caretaker permissions and responsibilities.
  2. Email Integration with Nodemailer:

    • Account Verification: Enhance security by requiring email verification during registration.
    • Password Recovery: Implement password recovery features, allowing users to reset passwords via email.
    • Caretaker Invitations: Simplify adding caretakers with email invitations, managing roles and permissions efficiently.
  3. Activity Reminders and Notifications:

    • Introduce a notification system to alert users of upcoming care activities, ensuring pets receive consistent care.
  4. Native Mobile Applications:

    • Develop native applications for iOS and Android to provide a seamless mobile experience.

Note

  • Functions not yet implemented in the frontend are operational in the backend and marked for future integration. These include full carer capabilities, detailed in source code comments.

Technical Setup

  • Backend Technologies: MongoDB, Express.js, Node.js, JavaScript, ESLint
  • Frontend Technologies: Vue.js, Ionic, TypeScript, ESLint, Jest
  • DevOps Tools: Docker, Nginx

Credits

This project was developed by yumeangelica. For more information on how this work can be used, please refer to the LICENSE.txt file.

Copyright © 2023 - present; yumeangelica

License

This project is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. This allows you to share the work, with appropriate credit given, but not to use it for commercial purposes or to create derivative works.

For more details about the license, please visit Creative Commons License.

needypet's People

Contributors

yumeangelica avatar

Stargazers

aili avatar Serica avatar

Watchers

 avatar

needypet's Issues

Fullstack-harjoitustyön katselmointi

Fullstack-projektin katselmointi

Tämä on katselmointi harjoitustyöstäsi. Sinun ei tarvitse toteuttaa tässä mainittuja parannushedotuksia saadaksesi suorituksen.

Käyttökokemus

  • Kerrassaan upea ja uniikki ulkoasu
  • Rekisteröityminen ja kirjautuminen toimi hyvin. Latausikoni requestin vastausta odotellessa olisi vielä hyvä idea.
  • Ominaisuudet toimii hyvin ja on helppoja käyttää.
    • 'Needin' aktiivisuutta säätelevä toggle on hieman harhaanjohtava, kun sen molemmin puolin on ikonit muokkaamiselle ja poistamiselle. Ei ole selvää, että mitä toggle tekee, ennenkuin sitä kokeilee.
  • Tekstikentissä on hyvin validaatioita joista tulee notifikaatioita, sekä esimerkiksi duration-kenttään ei voi syöttää muuta kuin numeroita.
  • Sivusto toimii hyvin myös puhelimella. Valikko siirtyy alas ja ominaisuudet on helppoja käyttää. Hienoa!

Koodi

  • En tunne Vuea, joten en osaa kommentoida sille spesifejä asioita. Koodi kuitenkin näyttää pääosin hyvältä. Tiedostot on organisoitu loogisiin kansioihin.
  • Store-kansion tiedostoissa on paljon toisteista koodia, esimerkiksi virheenhallinnan sekä header-objektin osalta. Nämä voisi hoitaa jotenkin keskitetysti.
  • Backendin petController.js-tiedostossa on esimerkkejä kahdesta parannettavasta asiasta:
    • Virheenhallinta - npm-paketti "express-async-errors" on kätevä tapa poistaa try-catch-koodi. Sen avulla esim. tietokantatoiminnoista tulevat virheet napataan automaattisesti ja lähetetään virheenkäsittely-middlewarelle.
    • Validaatiot (esim. addNewNeed ja addNewRecord -funktioissa) ovat todella pitkiä ja toisteisia. Tähän on kehitetty kirjastoja, ainakin 'zod' ja tietääkseni 'yup' ovat käteviä validaatioiden kirjoittamiseen.
  • Muuten projektissa on käytetty fiksusti sopivia kirjastoja.
  • Backend on organisoitu hyvin, ja middlewareja on käytetty tehokkaasti

Yhteenveto

Projekti on näppärä, hyvin tyylitelty ja helppokäyttöinen sovellus lemmikin tarpeiden seuraamiseen. Kaikki ominaisuudet toimii, sovellus on huoliteltu ja käyttökelpoinen myös mobiililla. Hienoa työtä! 💎

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.