Skip to content

MisterPea/NYTimes-Aggregator

Repository files navigation

NYTimes Top Stories Aggregator 📰

A website allowing you to view the latest Top Stories as they appear on The New York Times. Users who sign up (via email) can choose subjects based upon their interests. Once daily, an email is sent out with the most recent stories based upon those interests.

This project lives at: https://thetimespage.misterpea.me

Features - To do:

Auth

  • Firebase login for users to save articles and subscribe to topics
  • Lost password/change password
  • Email account confirmation

Frontend:

  • Articles browse page
  • Section menu
  • Modals - For selecting subscriptions and login
  • Styling - possible Materials-UI
  • Branding for NY Times API usage
  • Aria Labeling
  • User Info page with current subscriptions, ability to pause change notifications, change username/password/email

Backend:

  • Scheduling calls to retreive latests stories
  • Add/delete subscriptions
  • Add/delete/pause subscriptions through user panel
  • Rate limit prevention
  • Twilio SendGrid setup
  • Google Cloud Functions setup for daily emails
  • Setup HTTPS and DNS
  • Lessen Cache Duration

Continuing Development:

  • Move password reset to same page as login - via Form Dialog
  • Add backdrop loading indicator
  • Add backend caching to nyt api calls
  • User Added Image for user icon
  • Better styling for dialogs/user-info
  • Add caching within Nginx

Stack:

  • React
  • React Router
  • Material-UI
  • Scss
  • Express
  • Node
  • Docker
  • Nginx
  • Firebase Auth
  • Firestore NoSQL
  • Google Cloud Platform: Compute Engine, Cloud Functions & Cloud Scheduler
  • Twilio Sendgrid

Rate Limit: 4,000 requests per day and 10 requests per minute. You should sleep 6 seconds between calls to avoid hitting the per minute rate limit.