Skip to content

Quran Mailer is an open-source Quran mailing free service, where you can subscribe with your email address to receive a Quranic verse daily.

License

Notifications You must be signed in to change notification settings

intern2grow/quran_mailer

 
 

Repository files navigation

Quran Mailer

Quran Mailer is a website that allows users to subscribe to a daily email and receive a random Quranic verse every day.

Introduction

Welcome to Quran Mailer! This project aims to provide users with a daily dose of inspiration and reflection through randomly selected verses from the Quran. Users can subscribe to receive these verses via email on a daily basis.

The project is deployed on Vercel and uses Vercel Cron Jobs for website activation and email automation, along with the Atlas Cloud MongoDB database for subscriber management.

Features

  • Daily email subscription service
  • Random selection of Quranic verses
  • Simple and user-friendly interface
  • Ability to read Quran through website

Installation

To run Quran Mailer locally or deploy it on your server, follow these steps:

  1. Clone the repository:
git clone https://github.com/ahmed0saber/quran_mailer.git
  1. Make sure you have Node.js installed on your device.

  2. Install dependencies:

cd quran_mailer
npm install
  1. Configure environment variables:

Create a .env.local file in the root directory and set the required variables as mentioned in .env.local.example file, where:

  • GMAIL_USER: Set this to your Gmail address, for instance, quran0mailer@gmail.com.

  • GMAIL_PASSWORD: Obtain your Gmail app password by following these steps: How to Get Gmail App Password.

  • MONGOOSE_DATABASE_URL:

  • SUBSCRIBERS_MODEL: Set this to the desired subscribers collection name, such as subscribers.

  • DATABASE_NAME: Set this to the database name, such as QuranMailer.

  • LOGGING_MODEL: Set this to the desired logs collection name, such as logs.

  • CRON_SECRET: Specify any secret key for the cron job (Vercel uses it for authorization), e.g., 123456789.

  • ADMIN_USERNAME: Set to any username, so you can use it to enter the dashboard, e.g., admin.

  • ADMIN_PASSWORD: Set to any password, so you can use it to enter the dashboard, e.g., admin.

  1. Start the server:
npm run dev
  1. Visit http://localhost:3000 in your web browser to access Quran Mailer.

  2. Run test suites when needed:

npm run test
  1. Get surahs data when needed:
npm run get:surahs

Usage

To subscribe to the daily email service and receive Quranic verses, simply submit your email address on subscription page.

Contributing

Contributions are welcome! If you would like to contribute to Quran Mailer, please follow these steps:

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix.
  3. Make your changes.
  4. Run the test suites and modify your code if anyone failed till all test suites succeed.
  5. Commit your changes
  6. Push your changes to your fork.
  7. Submit a pull request to the main repository.

If you don't have any idea about what to contribute with, here are some ideas:

  • Adding Quranic Verses: Contribute by adding new Quranic verses to the verses.js file. Ensure verses are not duplicated.
  • Feature Requests: Suggest new features on the issues page.
  • Bug Reports: Report errors or bugs on the issues page.
  • Issue Resolution: Address validated issues from the issues page.
  • Code Updates and Refactoring: Refactor code or make updates to enhance the project.
  • Documentation: Help improve the project's documentation, including the README.md file.
  • Add Test Cases: Add more test cases that can help keep the code quality high over time.

For more detailed guidance on contributing to open source projects, check out this YouTube playlist: Contributing to Open Source Projects (in Arabic).

License

This project is licensed under the MIT License. See the LICENSE.md file for more details.

Contact

If you have any questions, suggestions, or feedback, feel free to reach out to us at quran0mailer@gmail.com or ahmed0saber33@gmail.com.

About

Quran Mailer is an open-source Quran mailing free service, where you can subscribe with your email address to receive a Quranic verse daily.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 83.8%
  • CSS 16.2%