Inspiration
I first saw about this project in devpost. I took it as a fun project and the idea was nice too. So i stated working on the project. I did start without any clue in the project but i thought that i can do it.
What it does
>The project basically fetches journals from the springerLink website using its API. It sends the journal to the user according to their interests. >I also sends different journals each week so that it would not send the same journal again to the user.
How we built it
There are to phases in the project:
Email automation : I used SMTP for mail automation. It gets our mail id and password of the senders mail and logins into the account and sends the content to the mail. I used SSL in SMTP which makes the ehlo process and logging and other activities faster.
journal fetching process: >I used the SpringerLink API for the journal recommendation. In this I took the metadata of the journals and in JSON format which gives us the detials of journals such as journal_name, authour, abstract, etc. >For the pagination process I used to variables which changes each time for the user to send next set of journals.
Challenges we ran into
I ran into many challenges in this project, the first one is > First for the journal recommendation i started to use Webscrapping in the journal website. It worked fine for the first process but when the process is repeated it started to change its format which then failed to fetch it from the web. so I changed my way to use API's instead of webscrapping. It worked for Springer journal but for IEEE API it asked for authentication, so i used only springer API. This problem was solved and i was able to get the metadata in a structured manner unlike Beauitiful Soup (Web scrapping)
> The next challenge i faced was the automation of this whole process. For this I chose Github actions as the first approach. I set the jobs to run the python file and update to database and push the changes to the repo. The python file executed at the scheduled time, but when i was executed for the second time it was unable to send the*next* set of journals (pagination). I created to variables whose values are incremented by 5 each time to get the next set of journals and inserted into the table i created. But I dont know what is the error, it cannot send the next set of journals
>So I searched for solution and found that ** jenkins** could do the work for me, but i faced the same problem in this job too. I still can't find the cause of the problem. But it works fine in my local code editor which send the next set of journals each time it is executed. >So these are the challenges i faced during the development of this project.
Accomplishments that we're proud of
>Upto now i didnt know how to develop a email sender program but by participating in this hackathon i learned to develop a email sender. >And I learned the fact that Nothing is impossible unless you TRY IT
What we learned
>I leaned how to develop a CI/CD pipeline in jenkins and in github actions. And I learned about creating a database and updating it. >In this I got to know more about the git and github processes and features. >I learned about webscraping and using API's in python code.
What's next for Jounal_mail_automation
> The next process for this project would be figuring out a way to automate this process. It is going to be a challenging one.
Log in or sign up for Devpost to join the conversation.