PETARI, The Food Donate WebApp, is an initiative by an organization aiming to redistribute excess food from various events to those in need. The project aligns with India's Sustainable Development Goals to achieve a hunger-free world and zero food waste. By leveraging technology, PETARI seeks to bridge the gap between surplus food and hunger, thereby benefiting society and the environment.
- HTML
- CSS
- Bootstrap
- JavaScript
- Node.js
- EJS
- Express.js
- MongoDB
- Authentication (Auth 2.0)
Thank you for considering contributing to PETARI! We appreciate your efforts to make a positive impact on society through food redistribution and combating hunger. By contributing to PETARI, you are helping us move closer to our goal of creating a hunger-free world and reducing food waste.
There are several ways you can contribute to PETARI:
-
Code Contributions: Help improve the PETARI codebase by fixing bugs, adding new features, or enhancing existing functionalities.
-
Documentation: Improve the project's documentation to make it more comprehensive and user-friendly.
-
Testing: Test the application and report any bugs or issues you encounter. You can also contribute by writing and running test cases.
-
Design: If you have design skills, you can contribute by creating or improving the user interface and experience of PETARI.
-
Feedback: Provide feedback on the existing features, suggest new ideas, or share your thoughts on how PETARI can be further improved.
If you're new to contributing to open-source projects, don't worry! Here's how you can get started:
-
Fork the Repository: Fork the PETARI repository to your GitHub account.
-
Clone the Repository: Clone the forked repository to your local machine using Git.
git clone https://github.com/your-username/Petari.git
-
Open project: Open the project directory.
cd Petari
-
Create a new branch: To create a new branch for your profile, run the following command:
git checkout -b add-profile
-
Setting up Project: Once you are in the Project directory, run this command to install all necessary npm modules
npm install
-
Setting up dotenv file: In the Project directory, create a file named ".env". Now add the following data to it
PORT=3000 ACCESS_TOKEN_SECRET = youraccesstokensecret MAIL_ID = yourmailid PASS_ID = your gamil app password
-
Database: If MongoDB is not installed on your local machine, install it. Once you run the project, databases and collections will be automatically created. For installation, you can follow the installation manual given on the MongoDB website for your respective operating system:
Once installation is done, open your terminal:
-
If you have installed MongoDB as a service, run this command to open the MongoDB Shell:
mongosh
-
Otherwise, you can run MongoDB Community Edition from the Windows command prompt instead of as a service. Open the command prompt, navigate to the MongoDB directory (e.g.,
C:\Program Files\MongoDB\Server\<version>\bin
), and run this command:mongod
This will start the MongoDB service. Don't close this terminal window while you are working on the project. Now run this command to open the MongoDB Shell in a new command prompt window/tab:
mongosh
Once MongoDB is running as a service, proceed to the next step.
-
-
Running The Project On Local Machine: To run the project, navigate to the project directory. Now run the command:
nodemon app.js
If the above command gives an error, run this command:
npx nodemon app.js
Once the server starts listening, to render the webpage, go to:
http://localhost:${PORT_MENTIONED_IN_DOTENV} or http://localhost:3000
-
Checking Database: After running the project for the first time, databases and collections will be automatically created. To check if they are properly made, open the MongoDB Shell and run these commands:
show dbs
You will find a database named
PetariDB
. Now, run this command in the MongoDB Shell to use that database:use PetariDB
To check collections inside the PetariDB, run this command in the MongoDB Shell:
show collections
You will see 4 collections inside the PetariDB:
admins
,ngos
,queries
,users
. -
Make Changes: Make your desired changes to the codebase or documentation.
-
Test Your Changes: Test your changes locally to ensure everything works as expected.
-
Add your changed files: Add changed files to the stage by running the following command:
git add .
-
Commit Your Changes: Commit your changes with descriptive commit messages.
git commit -m "message"
-
Push Changes: Push your changes to your forked repository.
git push
-
Create a Pull Request: Open a pull request from your forked repository to the main PETARI repository. Provide a clear description of your changes in the pull request. Follow these steps
- Add the issue number, that you have been assigned[Formate:- Isuue number #(your issue number)]
- Brief description of the changes
To maintain consistency and readability, please follow these code style guidelines:
- Use meaningful variable and function names.
- Follow indentation and formatting conventions used in the existing codebase.
- Write clear and concise comments to explain complex logic or algorithms.
All contributions to PETARI will go through a code review process to ensure code quality, consistency, and adherence to project standards. Your contributions are valuable, and we appreciate your patience during the review process.
PETARI is committed to fostering an inclusive and welcoming community. We encourage respectful and constructive communication among contributors. Please refer to our [Code of Conduct]-(https://github.com/Sahil1786/Petari/blob/dffa12d5f33b3227ec287af602762ef1f7bc3f89/Code_of_conduct.md) for more information.
The index page serves as the main landing page for PETARI. It showcases the mission and purpose of the organization, along with relevant information about its activities.
This page allows users to get in touch with PETARI for inquiries, collaborations, or any other relevant communication. It provides contact information and possibly a contact form for convenience.
Users can log in to their accounts on PETARI's platform. This feature enables users to access personalized services, such as tracking their donations, managing their profiles, and more.
Admins have special privileges and access to manage the platform. The admin login page provides authentication for authorized personnel to perform administrative tasks, such as managing user accounts, overseeing donations, and maintaining the system.
**Please follow me and give a star to my repository