Welcome to MyPet, where the passion for pet adoption meets the expertise of MyDevify.com. Our platform, powered by MyDevify.com's cutting-edge development tools and expertise, revolutionizes the way homeless pets find loving homes.
- Framework: Next.js with TypeScript
- UI Development: DaisyUI
- Database: MongoDB with Mongoose
- Authentication: next-auth@beta15
MyPet offers a comprehensive set of features designed to streamline animal adoption processes and enhance user experience.
- Intuitive design ensures ease of use for all users.
- Developed with Next.js and TypeScript for efficient full-stack development.
- Utilizes DaisyUI for visually appealing and modern user interface design.
- Implements next-auth@beta15 for robust and secure user authentication.
- Supports role-based access control for administrators, moderators, and users.
- Provides a centralized dashboard for users to manage profiles, adoption requests, and settings.
- Moderators can add, edit, and delete pet listings efficiently.
- Moderators can handle adoption requests, including approval, rejection, and pending status.
- Moderator Control Panel enables the creation and management of global notifications and announcements.
- Administrators have additional privileges for user management tasks.
- Offers light and dark theme modes for user interface customization.
- Features robust error handling mechanisms for smooth user experience.
- Allows organizations to customize the platform to fit their specific needs.
- Designed to scale with the growth of adoption organizations and user base.
- MyPet is open-source, allowing for community contributions and customization.
example.com/
: Accessible by guests. Guests can browse available pets and adoption information.example.com/login
: Login pageexample.com/register
: Registration page
example.com/dashboard
: Requires account registration/login. Authenticated users can access their profile, update settings, and manage adoption requests.example.com/dashboard/profile
: Display user profileexample.com/dashboard/settings
: Update user settingsexample.com/dashboard/myrequests
: Display and manage adoption requestsexample.com/dashboard/petslist
: Display list of available pets
example.com/dashboard/pets
: List of pets to manageexample.com/dashboard/pets/add
: Add a new petexample.com/dashboard/pets/[id]
: Update pet information
example.com/dashboard/managerequests
: Manage users' adoption requests. Moderators can approve/decline or set requests to pending.
example.com/dashboard/modcp
: Create/update/delete global notifications or announcements
example.com/dashboard/users
: List of users to manageexample.com/dashboard/users/add
: Add a new userexample.com/dashboard/update/[id]
: Update user information
-
Actions Functions:
app/lib/actions.js
: Contains actions functions.
-
Fetching Functions:
app/lib/data.js
: Contains fetching functions.
-
Model Functions:
app/lib/model.js
: Contains model functions.
-
Utility Functions:
app/lib/utils.js
: Contains Mongoose connection utilities.
- Clone the repository:
git clone https://github.com/mydevify/MyPet.git
- Navigate to the frontend directory:
cd frontend
- Install dependencies:
npm install
- Create a
.env
file inside the frontend root directory and paste the following configuration:
MONGO=<your_MongoDB_connection_link>
AUTH_SECRET=xloyistestingbeta
AUTH_URL=http://localhost:3000/
REACT_EDITOR=atom
API_BASE_URL=http://localhost:3000/
Replace <your_MongoDB_connection_link>
with the connection link obtained from your MongoDB account.
- Save the
.env
file.
- Create an account on MongoDB.
- Create a new cluster.
- Copy the connection link to the
MONGO
variable in the.env
file.
Once the setup is complete, you can start the development server:
npm run dev
You Can import the data i provided you in the repository root
Login: Username: admin password: admin