subhashis2204 / project-annapurna

This is the project annapurna repository
https://project-annapurna.azurewebsites.net/
MIT License
10 stars 28 forks source link
authentication authorization azure-webapp ejs-templates expressjs geocoding geonear googlemaps-api mongodb multer-fileupload nodejs otp-verification sendgrid-integration session-management
# [Annapurna πŸ™Œ](https://project-annapurna.azurewebsites.net/) ![project-annapurna](https://socialify.git.ci/subhashis2204/project-annapurna/image?description=1&descriptionEditable=A%20Food%20Donation%20Application%20that%20connects%20NGOs%20and%20restaurants&font=Jost&forks=1&issues=1&language=1&logo=https%3A%2F%2Fwww.nicepng.com%2Fpng%2Ffull%2F14-145168_plate-knife-and-fork-png-clipart-plate-and.png&name=1&owner=1&pattern=Solid&pulls=1&stargazers=1&theme=Dark) ![License](https://img.shields.io/github/license/subhashis2204/project-annapurna.svg?style=for-the-badge&logo=unlicense&logoColor=white) ![Downloads](https://img.shields.io/github/downloads/subhashis2204/project-annapurna/total.svg?style=for-the-badge&logo=githubsponsors&logoColor=white) ![Followers](https://img.shields.io/github/followers/subhashis2204.svg?style=for-the-badge&label=Follow&maxAge=2592000&logo=github&logoColor=white) ![Forks](https://img.shields.io/github/forks/subhashis2204/project-annapurna.svg?style=for-the-badge&logo=justeat&logoColor=white) ![Stars](https://img.shields.io/github/stars/subhashis2204/project-annapurna.svg?style=for-the-badge&logo=coveralls&logoColor=white) ![Issues Open](https://img.shields.io/github/issues/subhashis2204/project-annapurna.svg?style=for-the-badge&logo=jabber&logoColor=white) ![Issues Closed](https://img.shields.io/github/issues-closed/subhashis2204/project-annapurna.svg?style=for-the-badge&logo=hackthebox&logoColor=white) ![PR Open](https://img.shields.io/github/issues-pr/subhashis2204/project-annapurna.svg?style=for-the-badge&logo=eclipseche&logoColor=white) ![PR Closed](https://img.shields.io/github/issues-pr-closed/subhashis2204/project-annapurna.svg?style=for-the-badge&logo=dynatrace&logoColor=white)

This is a **food donation application** that connects NGOs and restaurants.

The purpose of this platform is to enable restaurants to donate surplus food to people in need through partnering NGOs.

The application includes features such as
Google geocoding 🌍 β€’ Email OTP notifications βœ‰οΈ β€’ Contact Us page πŸ“ž

[Features](#features) β€’ [How To Contribute](#how-to-contribute) β€’ [Getting Started](#getting-started) β€’ [Setup Guidelines](#setup-guidelines) β€’ [Tech Stacks](#tech-stacks) β€’ [Contributors](#contributors)

Features

Features Details
Restaurant Donation Restaurants can donate surplus food to NGOs through the platform.
NGO Partnership NGOs can receive food donations from restaurants and distribute them to people in need
Google Geocoding Integration with Google Geocoding API for accurate location services.
Email OTP Notifications Users receive One-Time Password (OTP) notifications via email for secure authentication.
Contact Us Page Users can contact the support team or administration through the contact us page.
Authentication Implement authentication functionality to ensure secure access to the application's features and user data. This can include user registration, login, and session management, using techniques such as username/password or social media authentication. Authentication adds an extra layer of security and allows personalized user experiences within the platform.

How to contribute

This can be done in 8 simple steps -


Getting started

The following environment variable are necessary for configuring the project in your local -

1. Azure


2. Sendgrid email notification

Sendgrid is a bulk emailing service. This project uses Sendgrid along with nodemailer to send transactional emails.

Follow these steps to enable sendgrid email notification -

What's next ?
  Go to the dashboard and on the left pane go to _settings_ β†’ _sender authentication_ β†’ _single sender verification_ β†’ click on _create new sender_ 
Fill in the necessary details and then you can start sending email using sendgrid.

Environment variables to configure azure storage:

CONTACTS_EMAIL_NAME = <CONTACT RECEIPIENT NAME>
CONTACTS_EMAIL = <CONTACT US PAGE EMAIL>
SENDER_MAIL = <SENDGRID VERIFIED EMAIL>
SENDGRID_API_KEY = <YOUR API KEY>


3. MongoDB

For running our application we need a DB. This project uses mongodb as the database. You can create a free account on the mongodb website and create a db in the cloud.


4. Google Maps API (OPTIONAL)

To show the google maps in the profile pages of restaurants and NGO we need to sign up for a google map API. This project specifically uses GOOGLE maps Javascript API.

GOOGLEMAP_TOKEN = <YOUR API KEY GOES HERE>

Setup Guidelines

To set up and deploy the application, follow these steps:


Tech stacks


Contributors

Contributors **Thanks for the contribution**