Giter Club home page Giter Club logo

nexus-pet-portal's Introduction

🐾 Nexus Pet Portal 🐾

Welcome to Nexus Pet Portal, your ultimate destination for managing animals in the shelter and finding them loving homes! 🏠🐢🐱

Nexus Pet Portal is a heartwarming Animal Shelter Management System designed to simplify the process of caring for and finding homes for shelter animals. Our system provides a seamless platform for shelter administrators to manage animals, update their adoption statuses, and maintain records efficiently.

Table of Contents

Features 🌟

  • Secure Login:
  • Animal Management: Add new animals to the shelter, update their information, and change adoption statuses with ease.
  • Adoption Records: Keep track of animals' adoption statuses and manage adoption processes seamlessly.
  • Administrative Dashboard: Access additional features for managing users, animals, and shelter operations effectively.

Installation πŸš€

  1. Clone the Repository:

    git clone https://github.com/tylerlight071/Nexus-Pet-Portal.git
    
  2. Navigate to the Repository:

    cd Nexus_Pet_Portal
    
  3. Install the required dependencies

    pip install -r requirements.txt
    
  4. Run the Application:

    python N_P_P.py
    

or download the latest release

  1. Go to releases
  2. Click on the latest version
  3. Download the exe file or the entire zip folder
  4. Extract the zip file if downloaded
  5. Run the exe file

This is the Python version, once in a v1.0 release, I will be working on a GUI version using React and Electron.

Setting Up MongoDB πŸƒ

To use Nexus Pet Portal, you need to have a MongoDB database. Here's how you can set it up:

  1. Create a MongoDB Account:

  2. Create a New Project:

    • After logging in, create a new project.
    • Give your project a name and create it.
  3. Create a New Cluster:

    • In your project, create a deployment by clicking the '+ Create' button.
    • Choose a provider and a region.
    • Choose a cluster tier. The free tier, M0 Sandbox, is sufficient for this project but if you need/want to use another then you are free to.
    • Give your cluster a name (should you wish to) and create it.
  4. Create a Database User:

    • In the Security Quickstart, you are prompted to authenticate your connection.
    • Click on 'Username and Password' and enter your username and click 'Autogenerate Secure Password'.
    • (They may be prefilled by MongoDB using your Cloud Registration Info in which use that)
    • Make sure you make a note of your password as you will need this in just a moment.
    • Click 'Create User' and scroll down to the 'IP Access List' and click, 'Add My Current IP Address'.
    • (Again, if this is prefilled, you can leave it.)
    • Then click 'Finish and Close'
  5. Get Your MongoDB URI:

    • In your cluster, click on the CONNECT button.
    • Choose 'Drivers' and under 'Driver' choose Python, and use the latest version.
    • Ignore the 'Install your driver' and simply copy the provided connection string (MongoDB URI).

Remember to replace <password> in the MongoDB URI with the password of the database user you created.

You can now use this MongoDB URI to connect to your MongoDB database from Nexus Pet Portal! Everything else is automatically set up so you don't need to do anything past that point.

First-Time Login βš™οΈ

  • To access the system for the first time, use the following default credentials:
    • Username: ADMIN
    • Password: ADMIN

(You will set the password to your own on first login)

  • To create a new user, go to User Management in the ADMIN Dashboard
  • Go to Register New User
  • Enter the desired username, password and user level. You can now log into the new user account.

(For resetting forgotten passwords, from User Management, enter Update user information, log in via Sudo ADMIN and simply reset the password to 'password')

System Requirements πŸ’»

Nexus Pet Portal is developed using Python. To run this application from the source code, you need:

  • Python 3.12 or higher
  • pip (Python Package Installer)

Future Plans πŸš€

We're constantly working to improve Nexus Pet Portal and add new features. Here are some of the updates we're planning:

  • User Schedules / Calendar to list upcoming events like appointments
  • GUI instead of terminal-based
  • Integrated Local Host Website

Stay tuned for these exciting updates and more!

Contributing πŸ’–

We welcome contributions from compassionate individuals who share our mission! If you'd like to contribute to Nexus Pet Portal, follow these steps:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature-name).
  3. Commit your changes (git commit -am 'Add new feature').
  4. Push to the branch (git push origin feature-name).
  5. Create a new Pull Request filled with love and dedication!

Issues ⚠️

Please submit any issues via the issues portal in this repo or email me at: [email protected]

License πŸ“

This project is licensed under the MIT License - see the LICENSE file for details.

nexus-pet-portal's People

Contributors

dependabot[bot] avatar tylerlight071 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

nexus-pet-portal's Issues

Notifications

This is a temporary thing that will be tested to see its use but could be used in regard to the staff portal to remind the user that they have events coming up but it is likely to be implemented properly in a future release, but for now will remain with the placeholder notifications to see how it may work as a concept idea

Clear Filters

Is your feature request related to a problem? Please describe.
A way to clear the filters without exiting and re-entering the view animals --> this allows the user to stay on the same page and refresh any previous filters

Describe the solution you'd like
An addition to the filters tab that simply allows the user to clear all the current filters

Audit Logs

Is your feature request related to a problem? Please describe.
Implement a way for the user to see their audit logs based on the date, time, user and/or activity in the ADMIN panel

Connection to MongoDB fails on first time inputting URI before logging in

Describe the bug
When the user first runs the program and enters the URI, it says the connection is successful or not as intended, however when the user attempts to log in without rebooting the app which is expected, it does not connect.

Expected behaviour
User is expected to enter their URI and then proceed to login without any issues

Incorrect password for Sudo User still allows access

Describe the bug
If the user inputs the incorrect password into the Sudo Login section, it tells the user it is incorrect yet still allows them access rather than make the user try again and remove an attempt

clear_screen_and_print_animals( ) was given 1 argument, expecting 0

Describe the bug
As in the title, the function is being given too many arguments and must be trimmed to meet the new style of the application and is as simple as removing the argument 'animals' from the 'handle_x_result functions and the clear_screen_and_print_animlas( ) function in the view_animals.py script

Filter Animals does not accept Male, only male, nor Female, only female

Describe the bug
The filter animals does not accept Male or Female as a valid value, only male or female

To Reproduce
Steps to reproduce the behaviour:

  1. Go into view animals
  2. Enter filter
  3. Input Male or Female and the error arises

Expected behaviour
Supposed to display the animals with the labels Male and Female just as using male and female does

Change View Animal Profile to match Current User

Is your feature request related to a problem? Please describe.
The use of tkinter for the animal profile is jarring as it does not match the rest of the script in its current state and should ideally match the current user output of the Update User Information in the ADMIN Dashboard

Filter Animals does not accept multiple queries

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behaviour:

  1. In view animals, go into the filter
  2. Attempt to input two or more queries
  3. Message, no animals found with that criteria is displayed

Expected behaviour
Display all animals that meet the criteria displaying only those with ALL the inputted queries

Animal table is shown when user exits any of the animal database options

Describe the bug
When the user exits the animal database options ie, Search, Sort/Filter etc, the animal table is printed rather than just the options as it should

-> This is due to unfinished modification of the script in regards to UI modifications and will be fixed promptly along with the new tabulate interface

Upload image error

Describe the bug
Clear error where save_data() is missing the argument filename

To Reproduce
Steps to reproduce the behaviour:

  1. Open the animal's profile
  2. Upload a file
  3. Error occurs

Expected behaviour
Image is shown in the profile after refreshing the screen

ADMIN Sudo --> Screen not cleared after verification

Describe the bug
If the user's ADMIN account is verified through the ADMIN Sudo Login, the screen is not cleared, presenting the new output underneath the User Verified... text rather than clearing the screen, then presenting the new text

Attempts remaining does not show

Describe the bug
When the user inputs the incorrect password, it correctly removes an attempt from the user but the screen is cleared too fast to display the message, rendering it unreadable.

Script does not move on when user enters full address into the customer_adoption_form.py

Describe the bug
When the user enters the full address, it does not move onto the rest of the form but instead goes back to the options menu. It does not mark the animal as adopted nor save the client's information in the database.

Expected behaviour
Supposed to require second consent acknowledgement before proceeding to mark the animal as adopted and save the customer information to the database

Attempts remaining & No message for username not found --> Sudo User

Describe the bug
If the user enters the the wrong username, or no password, they are told that both the username and password are required rather than the message to say that username was not found if wrong username and both fields are required if the user misses one, or both fields.

Also when the user does this, they are also not shown the attempts remaining text but are however kicked out the application after 2 failed attempts as intended

Username not found

Move the username not found check to after the user inputs their username to make the process more streamlined

ADMIN User Password reset

Is your feature request related to a problem? Please describe.
ADMIN user has no way to reset their own password should it be compromised and or if they lose or forget the password. A solution is being planned and looked into with the mentality of emails or security questions being present.

  • User can currently delete the config file or delete the users collection in their database and start again

Sudo Login --> No password, no error

Describe the bug
If the user is >= level 2 and does not input a password into the sudo login, no error is shown, the screen is not cleared and the sudo login is looped

Expected behaviour
Error message is displayed, screen cleared and sudo looped

User kicked out of Client Database

Describe the bug
If the user enters a "coming soon" section, they are kicked out the database rather than looped back into the options menu

Move Sort and Filter into the Search For Animals output

Is your feature request related to a problem? Please describe.
Move Sort and Filter into the Search For Animals, View Animals & Modify Animal Database output rather than in main options as it is pointless to have due to the user not being able to see a table in this view whereas in the search, the possibility to have multiple animals of the same is likely which is the intended use

ADMIN commands looking for users.json

Describe the bug
ADMIN commands:

  • update user information
  • change user password
  • delete user

are all looking to load and update users.json but moved to database so longer needed

Config.py does not work in exe

Describe the bug
When user inputs new URI the exe does not use that URI but instead the default that is bundled. To fix, changing from a .py to JSON so it can dynamically update and pull information as needed

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.