Skip to content

openml-stack/SentiLog-AI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SentiLog AI

MIT License PRs Welcome Build Status Open Issues


🧠 What is SentiLog AI?

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.


🌟 Core Features

SentiLog AI provides a unique fusion of sentiment-aware news analysis and personal mental wellness tracking through the following key features:

πŸ“° Real-Time News Bias Filter

  • Automatically analyzes current news articles and classifies them based on political bias: Left, Right, or Neutral.
  • Helps users recognize media bias and form balanced opinions.
  • Uses Natural Language Processing (NLP) models to assess sentiment and ideological leaning in real-time.

πŸ““ Daily Mood Journal

  • Users can write daily journal entries about their thoughts or experiences.
  • The system performs sentiment and emotion analysis (e.g., happy, sad, anxious).
  • Helps users track their mental state over time, identifying patterns or triggers.
  • Journal data can be cross-referenced with consumed news to understand the impact of external events on personal emotions.

πŸ“ Project Structure

project-root/
β”‚
β”œβ”€β”€ client/ 
|   β”œβ”€β”€ index.html/
|   β”œβ”€β”€ public/                 
β”‚   └── src/                 # React frontend (Vite + Tailwind)
β”‚       β”œβ”€β”€ pages/           # JournalPage, NewsPage, Dashboard
β”‚       β”œβ”€β”€ components/      # Navbar, SentimentCard, ChartPanel
β”‚       β”œβ”€β”€ App.jsx
β”‚       └── main.jsx
β”‚
β”œβ”€β”€ server/                  # Node.js + Express backend
β”‚   β”œβ”€β”€ routes/              # journal.js, news.js
β”‚   β”œβ”€β”€ controllers/
|   β”œβ”€β”€ middlewares/         # Express entry
|   β”œβ”€β”€ uploads/
|   β”œβ”€β”€ utils/
β”‚   β”œβ”€β”€ models/              # Mongo schemas
β”‚   └── index.js             
β”‚
β”œβ”€β”€ ml-api/                  # Flask-based ML service
β”‚   β”œβ”€β”€ app.py
β”‚   β”œβ”€β”€ model/
|   β”œβ”€β”€ vader_service.py/
β”‚   └── requirements.txt
|
β”œβ”€β”€ notebook/
|    β”œβ”€β”€ varder_sentiment_demo.ipynb
β”‚    
β”œβ”€β”€ .gitignore
β”œβ”€β”€ README.md
└── package.json / envs

πŸš€ Quick Start

1. Clone the Repository

git clone https://github.com/your-org/SentiLog-AI.git
cd SentiLog-AI

2. Setup the Frontend (client/)

cd client
npm install
npm run dev
  • Built with Vite + React + Tailwind CSS
  • Main routes: /journal, /news, /dashboard
  • Placeholder components: Navbar, TextInput, SentimentCard, LineChart

3. Setup the Backend (server/)

cd ../server
npm install
npm run dev
  • Express.js API server
  • Connects to MongoDB (see .env.example)
  • Routes:
    • POST /api/journal/analyze β†’ calls ML API
    • POST /api/news/analyze β†’ calls ML API
  • Uses Mongoose for MongoDB schemas


πŸ“˜ API Documentation (Swagger)

Once your backend server is running, you can explore all API endpoints using Swagger UI:

https://sentilog-ai.onrender.com/api-docs

This interactive documentation provides:

  • Available endpoints and HTTP methods
  • Required parameters and request formats
  • Sample requests and responses
  • Error status codes

Note: If your server runs on a different port, update the URL accordingly (e.g., http://localhost:3000/api-docs).

4. Setup the ML API (ml-api/)

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

5. Environment Variables

  • Copy .env.example in server/ to .env and fill in your MongoDB URI and other secrets.

🧩 Contributing

  1. Comment on the issue you want to work on (frontend, ml-api, express route, schema)
  2. Fork the repo & clone locally
  3. Work in the corresponding subfolder
  4. Open a PR with the title: [Feature]: <Your Component or Route>

πŸ“¦ Tech Stack

  • Frontend: React, Vite, Tailwind CSS
  • Backend: Node.js, Express, MongoDB, Mongoose
  • ML API: Python, Flask, transformers, vaderSentiment

πŸ“ License

This project is licensed under the MIT License β€” see the LICENSE file for details.

The MIT License is a permissive license that allows you to:

  • Freely use, copy, modify, and distribute the code.
  • Use the project in commercial and non-commercial applications.
  • Attribute the original creator(s) in any reused version.

By contributing to this repository, you agree that your contributions will be licensed under the MIT License as well.


πŸ™Œ Community


πŸ“„ Acknowledgements


_Let’s build the future of mood and news analysis together β€” one contribution at a time! _