Coder Social home page Coder Social logo

subhashis2204 / project-annapurna Goto Github PK

View Code? Open in Web Editor NEW
10.0 2.0 28.0 1.93 MB

This is the project annapurna repository

Home Page: https://project-annapurna.azurewebsites.net/

License: MIT License

JavaScript 40.45% CSS 0.09% EJS 59.46%
azure-webapp expressjs geocoding geonear googlemaps-api mongodb nodejs otp-verification ejs-templates authentication

project-annapurna's Introduction

project-annapurna

License Downloads Followers Forks Stars Issues Open Issues Closed PR Open PR Closed

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 β€’ How To Contribute β€’ Getting Started β€’ Setup Guidelines β€’ Tech Stacks β€’ 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 -

  • Step 1: Fork the repo and go to your git terminal and clone it on your machine

    git clone https://github.com/<your_github_username>/project-annapurna.git
    cd project-annapurna
  • Step 2: Add an upstream link to the main branch in your cloned repo

    git remote add upstream https://github.com/<your_github_username>/project-annapurna.git
  • Step 3: Keep your cloned repo up to date by pulling from upstream This will also avoid any merge conflicts while committing new changes.

    git pull upstream main
  • Step 4: Create your feature branch This is a necessary step, so don't skip it

    git checkout -b <branch-name>
  • Step 5: Track and stage your changes

    # Track the changes
    git status
    # After adding required changes
    git add .
  • Step 6: Commit all the changes Write commit message as "Small Message"

    git commit -m "<your-commit-message>"
  • Step 7: Push the changes for review

    git push origin <branch-name>
  • Step 8: Create a PR on Github

    Don't just hit the create a pull request button, you must write a PR message to clarify why and what are you contributing

Getting started

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

1. Azure

  • Step 1: Create an Azure account

You must have an azure storage account for the project.
Images are stored as a blob in azure. So we need to have a blob container which we would access through our access keys
If you are a student then you can sign up for a $100 free credit on azure here

azure_sa_img

  • Step 2: Creating a new resource

After selecting the storage account. We need to create a new resource.

azure_sa_create

  • Step 3: Fill the form

A form is displayed. You only need to fill in the type of subscription and the name of storage account.
Leave rest to default. Then go to the resource and search for access keys.

azure_sa_aks

  • Step 4: Choose connnection string

After clicking the access keys, we can see our storage account name and connection string (there are two of them, choose anyone)

  • Step 5: Setting up container

As a last step in the resource page, you have to set up the container where we would store the images.
In your newly created storage acc dashboard, click on the blob storag
You must see a page where you can create a new container. Remember this name as we need it
Environment variables to configure azure storage:

CONTAINER_NAME = <BLOB STORAGE CONTAINER NAME>
CONNECTION_STRING = <CONNECTION STRING FOR STORAGE ACCOUNT>

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 -

  • Step 1: To get started you must have a sendgrid account. You can create one here. You can opt for the free tier. It does not require any credit card.
  • Step 2: After signup you need to create an API key. copy the api key and save it somewhere since you won't be able to see it again.
  • Step 3: Since, we have reached this far. One final step is that we have to setup an email which would be authorized to send emails using sendgrid.
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.

  • Step 1: First you have to create a project, then after creating a project you can create a DB.

  • Step 2: Go to the dashboard and on the left pane search deployments, then click Build a database

db_deploy

  • Step 3: You would be redirected to a page where you have to choose the config of database. Choose free tier and choose a cloud provider and any region of your choice and choose a cluster name>

  • Step 4: You would be provided a username and password. Note them down somewhere.

  • Step 5: Scroll down to the IP access list. Add 0.0.0.0 as the ip. This would enable global access to your db. Click on close

ip_access A typical mongodb url string looks like this :

_mongodb+srv://\<username\>:\<password\>@cluster345.hy4gkmn.mongodb.net/_

The username is already given. You need to replace the password in the connection string. This gives the full connection string.

MONGODB_URL = <DB CONNECTION STRING>

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:

  • Clone the repository: git clone <repository-url>
  • Install dependencies: npm install
  • Configure environment variables for APIs and services.
  • Start the application: nodemon index.js
  • Access the application in a web browser at http://localhost:3000.

If you have any questions or need further clarification, please feel free to reach out. We appreciate your contribution to making the Food Donation Application a success!

Tech stacks


Contributors

Contributors

Thanks for the contribution

project-annapurna's People

Contributors

alfiyasiddique avatar andoriyaprashant avatar ayush-tibrewal avatar hariharanreddy avatar nishitbaria avatar parthpathakpp1 avatar prernadabi23 avatar rashakdude avatar rhithesh avatar roshan798 avatar s-ishita avatar sabhisharma-ise avatar subhashis2204 avatar vishnu1804k avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

project-annapurna's Issues

Dynamic Year in Footer Section

Hi, I would be making the year in the footer section dynamic, so that It will change itself automatically every year.
Can you please, assign this to me?

Add error handling middleware in seed.js

By including error parameter in catch block we can access and control the specific type of error that occurred during the connection process .It can be helpful for debugging and troubleshooting connection issues.

please assign me this issue @subhashis2204

Implement Pagination in the Donation List for Restaurants

The current state of donation list is like this :

image

As it can be seen as a restaurant keeps donating the list grows longer. It would be nice if the results are paginated so that only a portion of the full list is shown at once.

add license

I want to add license in repo.PLease assign this issue to me

The Logo Icon in the footer

The logo Icon in the footer takes you to the website https://flowbite.com/. It should be linked to the home page of the website just like the above navbar logo.

revamp of about us page

The "About Us" page doesn't match the website's design.

CHANGES:

We can improve it by making it resemble the home page. We'll add a picture at the top and include a brief description of our website. This way, users will have a consistent experience when they visit the "About Us" page.

Missing Code of conduct.md file

Missing Code of Conduct file in the repo to provide clear guidelines to the contributors and to empower a positive growth environment. I can add it

Please assign me this issue under Gssoc'23 @subhashis2204

The scrollbar is not very attractive

Description

The website is beautiful but the scrollbar is very simple.
I can add styling to the scrollbar so that it looks more attractive and the website also looks better.
I can change the styling of scrollbar .Can you assign this issue to me?

Screenshots

No response

Additional information

No response

Add contribution guidelines to GitHub Repo

Would love to add the Contribution Guidelines to the Readme.md file.
For Encouraging Contributors to the contribute to the repo!

Contributor - Sabhi Sharma (GSSOC'23)

Fix Mongo

In project, the mongo connection is occurred into a two files.

  1. Index.js
  2. Restaurant.js in seed

Please assign me! @subhashis2204, so I fix this issue.

Fix: Missing Issue Template

Description:

I noticed that the repository does not have an issue template. Having an issue template can greatly improve the clarity and consistency of issue reports, making it easier for contributors and maintainers to understand and address the problems or feature requests effectively.

Here are three templates that I want to include:

Issue Template: This template enables users to create well-structured issue reports by providing sections for a concise title, detailed description, steps to reproduce (if applicable), expected behavior, actual behavior, additional information, and environment details.

Feature Request Template: The feature request template allows users to outline their desired features with clarity, including sections for a clear feature description, expected benefits, and any additional context or information.

Documentation Template: This template facilitates the creation of comprehensive documentation by providing a structured format, including sections for an introduction, usage instructions, examples, and other relevant details.

Please assign this issue to me under GSSoC'23 @subhashis2204

Fixing the UI of the Contact Us Page

Hi, I would like to contribute in fixing the overflow of email in contact information part of contact us page.
Also, I would like to fix some padding inconsistencies that I saw in mobile device of contact us page.

image

Can you please, assign this to me? I am a Gssoc'23 contributor.

{Bug} Contact Section taking empty input fields

Steps to reproduce

  1. Go to website
  2. Click on Contacts
  3. Without filling the form click on Submit

Redirects to home with a message "message has been delivered"

I would like to fix this issue.
Could you please assign this issue to me under GSSOC'23.

9e801f1a-a6e3-4a92-9c09-5e96e15bdc1f.mp4

Improve Footer Section

Footer section is not aligned properly and does not look good . I can make it look good .
annpurna3

Enhance the homepage interface enhancement

The homepage interface doesn't look that appealing. The background image is a bit blurry and the navigation bar too doesn't fit right. I would like to enhance the homepage appearance to make it a bit more appealing.

Changes in the Footer

Instead of having a Resources section that is not even related to the website we can add a Who We Are Section:

Who We Are-
About us
Contact us
Blog
FAQ's

UI Improvement: Rounded Input Element in Contact Us Page

Hi @subhashis2204,

I have made a small UI enhancement for the contact us page. By adding the "rounded-md" tailwind class to the input element in the contact form, it now has rounded corners, creating a more visually appealing appearance.

Please assign this task to me under GSSOC'23 so that I can contribute these changes to the project.

image

Missing Issue Template in Repository

Description:

I noticed that the repository does not have an issue template. Having an issue template can greatly improve the clarity and consistency of issue reports, making it easier for contributors and maintainers to understand and address the problems or feature requests effectively.

here are three templates that I want include:

Issue Template: This template enables users to create well-structured issue reports by providing sections for a concise title, detailed description, steps to reproduce (if applicable), expected behavior, actual behavior, additional information, and environment details.
Feature Request Template: The feature request template allows users to outline their desired features with clarity, including sections for a clear feature description, expected benefits, and any additional context or information.
Documentation Template: This template facilitates the creation of comprehensive documentation by providing a structured format, including sections for an introduction, usage instructions, examples, and other relevant details.

Add Auto Comment Feature to Improve Collaboration

Issue Description:
As an active contributor to your open-source project, I believe that implementing an auto-comment feature would greatly enhance collaboration and communication within the project. This feature would automatically generate comments in response to specific events, such as when an issue is opened, a pull request is created, an issue is assigned, or an issue is unassigned.

Feature Details:

  • When an issue is opened, the auto-comment should greet the author and provide a brief acknowledgement and request for additional context.
  • When a pull request is opened, the auto-comment should greet the author, express gratitude, and remind them to follow the project's contributing guidelines.
  • When an issue is closed, the auto-comment should thank the author for their contribution and encourage further engagement.
  • When an issue is assigned to someone, the auto-comment should notify the assignee and encourage them to start working on it.
  • When an issue is unassigned from someone, the auto-comment should notify the assignee about the change and suggest reassignment if they are offline.

Benefits:

  • Improved communication and engagement with contributors.
  • Provides clear instructions and acknowledgements for various events.
  • Enhances collaboration by setting expectations and providing reminders.
  • Reduces manual effort by automating comment generation.

Acceptance Criteria:

  • The auto-comment feature should be implemented using the "wow-actions/auto-comment" GitHub Action.
  • Comments should be appropriately customized for each event, mentioning relevant parties and providing the necessary information.
  • The auto-comment workflow should trigger on the following events: issues opened, pull requests opened, issues closed, issues assigned, and issues unassigned.
  • The feature should be added to the project's existing GitHub Actions workflow file.

Additional Context:
Feel free to ask any questions or seek clarification regarding the auto-comment feature. I'm excited about contributing to your project and believe this enhancement will greatly benefit its community.

[GSSOC'23] Adding rating and feedback system

The feature that could be added to this platform is a rating and feedback system. Users could rate the quality and quantity of the donated food they received, as well as the responsiveness and effectiveness of the NGOs distributing the food. This feedback can help restaurants and NGOs identify areas for improvement and enhance their service .
Can U please assign me this project under GSSOC'23

Fixing the UI of About Us Page

The About us Page should be looking very interesting but right now it doesn't feel very promising so the improvement in UI will definitely help

-> I will improve the UI
-> Will find some more ways to make it interesting

therefore, I request you to assign this task to me under GSSOC'23

Thank you

[FEATURE] UI Improvement

Description

We need to add some margin or padding to the left and right sides of the web pages, it would look better.

Screenshots

Screenshot (25)

Additional information

No response

unclear input field

in registration form of beneficiary the input field 'choose file' is unclear. it does not tell which/what file to choose leading to confusion and unclear objective of that field.

solution-

We can add a label to field which will tell what file to choose.

annapurna

Improve the Footer logo.

The background color of the footer section closely matches the color of the logo, making it challenging to distinguish and see the logo clearly.

image

To address this issue, one possible solution is to apply the CSS property filter: invert(100%) to the logo, which will invert its colors and make it visible.

I would love to work on this issue so please assign this to me.

Change in UI

Description

The UI of the sign up page needs to be made more attractive with better background color ,filter and few enhancement tools.

Screenshots

Screenshot from 2023-05-31 15-26-59

Additional information

This page needs a better style, Formal and attractive fonts.

Please assign me this task under GSSOC'23

UI Improvement for About Us Section

The current "About Us" section is lacking visual appeal. I would like to take on the responsibility of enhancing the UI of this section to make it more visually appealing and engaging for users.

Screenshot:

about us section

I kindly request you to assign this issue to me so that I can improve UI for the "About Us" section.

Docs: Add Pull Request Template

Description

  • Adding a PR template
  • Template path .github\pull_request_template.md

Screenshots

Screenshot 2023-05-29 233408
Screenshot 2023-05-29 233534

Additional information

GSSOC 2023

Add CONTRIBUTING.md file

Description

Hi there!
I recommend adding a CONTRIBUTING.md file to your repository. This file would serve as a guide for potential contributors, outlining the project's contribution guidelines, coding conventions, and steps to follow when raising issues or submitting pull requests. It will help streamline the contribution process and provide clarity to newcomers.

I would like to work on this issue. Please assign it to me under GSSoC'23.

Thank you!

Footer Section

@subhashis2204 As a part of GSSOC'23, I would like to work on the footer section of the website to improve the UI of the home page. Kindly assign this issue to me.

Adding OAuth authentication

Description

I want to add sign in with google feature.

Screenshots

No response

Additional information

No response

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.