Skip to content

Latest commit

 

History

History
203 lines (142 loc) · 5.87 KB

File metadata and controls

203 lines (142 loc) · 5.87 KB

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! _