SentiLog AI is an open-source platform that combines news sentiment analysis and personal mood journaling. It features a modern React frontend, a robust Node.js/Express backend, and a Python/Flask microservice for ML-powered sentiment/emotion analysis.
project-root/
│
├── client/ # React frontend (Vite + Tailwind)
│ └── src/
│ ├── pages/ # JournalPage, NewsPage, Dashboard
│ ├── components/ # Navbar, SentimentCard, ChartPanel
│ ├── App.jsx
│ └── main.jsx
│
├── server/ # Node.js + Express backend
│ ├── routes/ # journal.js, news.js
│ ├── controllers/
│ ├── models/ # Mongo schemas
│ └── index.js # Express entry
│
├── ml-api/ # Flask-based ML service
│ ├── app.py
│ ├── model/
│ └── requirements.txt
│
├── .gitignore
├── README.md
└── package.json / envs
git clone https://github.com/your-org/SentiLogAI.git
cd SentiLogAI
cd client
npm install
npm run dev
- Built with Vite + React + Tailwind CSS
- Main routes:
/journal
,/news
,/dashboard
- Placeholder components:
Navbar
,TextInput
,SentimentCard
,LineChart
cd ../server
npm install
npm run dev
- Express.js API server
- Connects to MongoDB (see
.env.example
) - Routes:
POST /api/journal/analyze
→ calls ML APIPOST /api/news/analyze
→ calls ML API
- Uses Mongoose for MongoDB schemas
cd ../ml-api
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python app.py
- Flask microservice
/predict
POST endpoint: accepts{"text": "..."}
and returns mock sentiment/emotion
- Copy
.env.example
inserver/
to.env
and fill in your MongoDB URI and other secrets.
- Comment on the issue you want to work on (frontend, ml-api, express route, schema)
- Fork the repo & clone locally
- Work in the corresponding subfolder
- Open a PR with the title:
[Feature]: <Your Component or Route>
- Frontend: React, Vite, Tailwind CSS
- Backend: Node.js, Express, MongoDB, Mongoose
- ML API: Python, Flask, transformers, vaderSentiment
MIT © [Your Name or Org]
Let's build the future of mood and news analysis together!