A modern, AI-powered personal journaling application built with FastAPI and Vanilla JS. InsightJournal allows users to track their daily thoughts, monitor mood trends, and visualize their emotional journey through an interactive dashboard.
- High Performance: Built on FastAPI for lightning-fast responses.
- Complete CRUD: Full support to Create, Read, Update, and Delete journal entries.
- RESTful API: Clean API architecture serving JSON data to the frontend.
- Data Validation: Robust input validation using Pydantic models.
- Responsive Design: Fully responsive layout (CSS Grid/Flexbox) that adapts from Desktop to Mobile.
- Interactive Charts: Mood trends visualized using Chart.js.
- Dark Mode: A sleek, modern dark theme designed for comfortable evening writing.
- Dynamic UI: Real-time DOM manipulation for a seamless user experience without page reloads.
- Backend: Python 3.10+, FastAPI, Uvicorn
- Frontend: HTML5, CSS3, JavaScript (ES6+)
- Libraries: Chart.js (Visualization), Pydantic (Validation)
Follow these steps to run the project locally.
git clone [https://github.com/YOUR_USERNAME/insight-journal.git](https://github.com/YOUR_USERNAME/insight-journal.git)
cd insight-journal It's recommended to use a virtual environment to keep dependencies clean.
# Windows
python -m venv venv
.\venv\Scripts\activate
# Mac/Linux
python3 -m venv venv
source venv/bin/activatepip install -r requirements.txtStart the FastAPI server using Uvicorn.
uvicorn main:app --reloadThe application will be available at http://127.0.0.1:8000.
-
Dashboard: View your "Average Mood" and "AI Score" at a glance.
-
Write: Type your entry in the main text area, select a mood score (1-10), and hit Save.
-
Track: Watch the chart update automatically with your new data.
-
Edit/Delete: Made a typo? Click the ✏️ icon to edit or the 🗑️ icon to remove an entry permanently.
-
Search: Use the search bar to filter through past memories instantly.
📂 InsightJournal
├── 📂 static
│ ├── app.js # Frontend Logic (API calls, UI updates)
│ ├── style.css # Responsive Styling
│ └── index.html # Main Dashboard UI
├──📂 app
│ ├── main.py # FastAPI Backend & Routes
│ ├── models.py # Setting the database structure
│ └── database.py # Creating the database
├── 📂 venv
├── requirements.txt # Python Dependencies
└── README.md # Project Documentation-
Integration with a persistent database (SQLite/PostgreSQL).
-
User Authentication (Login/Register).
-
Advanced AI Sentiment Analysis using NLP.
This project is open-source and available under the MIT License.
.png)