Skip to content

brandiny/ncdaily-opensource

Repository files navigation

NC Daily

NC Daily is a notices aggregator for the Kamar Parent Portal notices page, find it here!

The noticeboard of a school is a hub for student information. However, many students frequently forget to check the notices and as a result, don't fully participate.

NC Daily sends out a fully featured email newsletter to all of its subscribers every morning, solving this problem.

Languages

Fullstack Flask web app 🐍. Fully automated ⚙️. Zero maintanence cost. 💰

HTML&CSS Python mySQL JavaScript heroku

Features

In addition to the notices, NC Daily offers extra features.

  • Notices can be added to Google Calendar in one click
  • Notices are sorted chronologically.
  • Notice authors can be emailed using a mail:to link
  • Daily motivational quotes
  • Searchable notices, using email search function.

Explanation of important files

Python Files

credentials.py Handles the sensitive information (credentials and blacklists)
emailformatter.py Compiles the contents of the newsletter into an HTML string.
main.py Driver program which sends out the newsletter to email pool.
makegcal.py Handles the construction of the Google calendar link and the mail:to link
newsletter.py Sends a single welcome newsletter to a new subscriber.
scraper.py Responsible for web scraping and sorting the data from the parent portal website.
server.py The flask backend for the web application.

Folders

static/ Has all of the static files: CSS, JS and pictures
templates/ Has all of the HTML served by Flask (website files)

Other files

quotes.json A large compilation of quote JSON objects.
requirements.txt A pip freeze of all of the packages required in this project

Snippets of newsletter photo