(This template is for students applying to summer code programs with Public Lab. Use this link to start writing a post: https://publiclab.org/post?n=899&tags=soc,soc-2018,soc-2018-proposals You can delete this line once you've started filling it out.)
Name: Naman Gupta
Affiliation: Guru Gobind Singh Indraprastha University, New Delhi, India-110078
Location: Delhi, India-110034
Project: Email Integration Project
Web Link: http://www.namangupta.me/
Email integration project
Abstract/summary (<20 words):
Implementing delayed background jobs, cron jobs for sending daily/weakly/monthly/ trending email digest to the subscribers.
Reply-by-email to comments feature.
The current implementation of Email System in PLOTS2 doesn't implement Active Jobs i.e queue feature because it is currently using rails 4.1. And rails 4.1 doesn't implement Active Jobs on its own. We have to ways to resolve this either include activejob gem or upgrade to rails 4.2 (we will go with this). So currently, mails are sended synchronously. And if the sending of mail is failed due to some reason or we don't want to send the mail at the time of request/response or if we want that a mail should be sent after (1 day or any specific period of time) we can't implement it now.
Sometimes, we have to run jobs at particular intervals to, say, backup logs, send emails, etc. In rails application we can schedule such tasks using the whenever gem.
For integrating cron jobs with the plots2 we can implement whenever gem which will be very useful in sending daily "batch digest" email to the subscribers. We can specify the time when the email should be sent. More details on implementation is in Implementation part.
Another feature is the reply-by-email feature using mailman gem which currently have three types of receivers: Standard Input, Maildir, and POP3. POP3 is used most often.
During this GSoC season I would deliver:
- Including Active Jobs in project.
- Implementing whenever gem to work with Active Jobs to perform delayed jobs.
- Implementing mailman gem which will be used in reply-to-comment via email feature.
- Implementing reply-to-comment via email feature.
- a user interface for managing digest settings and email notification settings.
3.1 Including Active Jobs
Currently, plots2 is using rails 4.1 and rails 4.1 don't implements Active Jobs so it should be updated to rails 4.2 so that we can use delayed jobs with the help of Active Jobs. On which i am currently working.
3.2 Implementing whenever gem
For implementing cron jobs with our application we can use whenever gem. The steps for implementing this gem are specified below :
1. Include whenever gem in Gemfile
2. Type command
wheneverize . in the root folder of the application which will create an initial
3. After typing above command also type command
whenever which will create a file
4. Now edit the schedule.rb file to add cron jobs. The best things about whenever gem is that it makes it easy to write cron jobs in simple ruby language.
- For Example:
every 1.day, at: '4:30 am' do runner "MyMailer.send_daily_digest.deliver_later" end every 1.day, at: '4:30 am' do runner "MyModel.task_to_run_at_four_thirty_in_the_morning" end every 3.hours do # 1.minute 1.day 1.week 1.month 1.year is also supported runner "MyModel.some_process" rake "my:rake:task" command "/usr/bin/my_great_command" end
5. Now run command
whenever --update-crontab update the
schedule.rb file and to enjoy cron jobs.
More to come -----working on it.
Working on it
Break your project up into small projects -- one per week!
See this page for guidance on breaking your plan up into small, self-contained parts: https://publiclab.org/notes/warren/01-18-2018/software-outreach-modularity-is-great-for-collaboration
Working on it
working on it
_Have you looked over our welcome page and are you familiar with how to make your first contribution? Have you already made it? We're eager to see that you've had a good experience making a small initial contribution to our site. Please check out our welcoming page: _
And paste in links to your initial contributions here so we can see!
I have been working on the the Web Technology from more than 1.5 year. And have developed many applications on rails as well as on other technology.
I have also worked as Tech Head in Google Developers Group - BVCOE which is a technical community and also took various workshops and sessions as mentor on different technology.
I have also worked as Teaching Assistant for Web Development Course (which is a Ruby On Rails course) in Coding Ninjas (www.codingninjas.in) where my job was to mentor the student and help them in their Web Projects.
I am currently working as Web Developer Intern in Edusquare and working on building their online test platform for preparing for prestigious Engineering Entrance Exams in India. These platforms are build using various technology -- Ruby On Rails, Python, Flask, AngularJs and Backbone Js.
I have been actively volunteering in various community where i have showed my skills of teamwork and hard work. I am currently volunteering in Google Developers Community and i have also organised hackathon in my college and worked as one of the organiser.
Open Source Contribution
I have been working on the open source projects from the past eight months. I have contributed to organisations like Public Labs and OpenSUSE.
The things that interest me the most about public lab is the science and environments because i am very passionate and have very deep interest in science particularly in physics --understanding how the law works in nature.
This project will make the publiclab user experience good whether it is reply by email feature or getting daily/weekely/ monthly/treading email digest to the subscribers.
Yes, i do understand this is a serious commitment and i will give my full dedication and commitment to this project .