פרויקט למעקב אחרי תכנים מאתרים שתומכים בטכנולוגיית RSS, לדוגמה בלוגים ואתרי חדשות.
מאפשר לקבל כל אייטם חדש ישירות למייל, או לצפות בתוכן בממשק אינטרנטי מעוצב ורספונסיבי בצורה מלאה.
טכנולוגיות:
צד שרת: Node.js + MongoDB
צד לקוח: Vue.js + Vuetify
הגרסה הציבורית מכילה הגבלות שונות, הן בכמות הפידים שניתן להירשם אליהם, והן ברשימה לבנה של אתרים שאליהם ניתן להירשם. ניתן לארח את הפרויקט בצורה עצמאית ללא המגבלות הנ"ל.
דרישות:
- nodejs
- mongodb URI - לוקאלי או מרוחק (ניתן לפתוח מסד בחינם בhttps://mongodb.com)
- משתמש Google עם "סיסמה לאפליקציה" עבור Gmail.
חובה להריץ את כל הפקודות לפי הסדר.
פקודת npm run configure
מפעילה סקריפט אינטראקטיבי ליצירת קובץ config.json
.
משתני סביבה ידרסו את ההגדרות שבקובץ ה-json.
שימו לב! בנוסף יש להוריד את קבצי הקליינט - https://github.com/ShlomoCode/rss-tracker-client, להריץ את הפקודה npm run build
ולהעלות את תוכן התיקייה dist
לתוך התקיה public
בתקיית הסרבר, או להגיש עצמאית את הקבצים באמצעות nginx, apache או כל שרת קבצים אחר.
- 🧰 Clone the code:
git clone https://github.com/ShlomoCode/rss-tracker-server
- 📦 Install dependencies:
npm install
- ⚙️ Configure the app:
npm run configure
- 🏃 Run the server:
npm start
-
morgan - logger
-
nodemon - refresh the server on file change
-
express - http server
-
cookie-parser - parse cookies in the server side
-
mongoose - connecting to mongoDB
-
rss-to-json - get rss feed and convert it to json
-
nodemailer - send emails
-
zxcvbn-ts - to check the strength of the password
-
bcrypt - to encrypt the password
-
html-entities - לטיפול באתרים ששולחים בפיד את התוים המיוחדים (מירכאות לדוגמה) בפורמט HTML Entities
-
html-metadata-parser - get image from html for sites that don't support og:image (JDN example)
-
image-to-base64 - download image from url and convert it to base64
-
prompts - to get the user input in the configuration process (setup.js file)
-
ms - convert milliseconds to human readable format or time in string to milliseconds
-
ejs - template engine - emails templates
-
javascript-time-ago - convert time to human readable format (for emails)
-
express-async-errors - to handle async errors in express
-
cross-env - Setting environment variables in the command line (for cross-platform)
-
colors - to print colors in the console
-
ajv - to validate the requests
-
validator - to validate the input
-
module-alias - to use aliases in the paths require()
-
sanitize-html - to sanitize the html
-
cheerio - apply changes to the html before send to client