Nocturne is a modern, AI-powered fintech platform designed to resemble a professional quant research terminal. It provides automated social sentiment analysis, ML-driven price predictions, and actionable trading insights using Google's Gemini AI.
- Quant-Style ML Dashboard: A professional, dynamic two-panel layout with stock selection and real-time analytics.
- Nova AI Insights: Deep, AI-generated analysis on any stock ticker powered amazon nova.
- Social Sentiment Scraper: Automated data collection from Reddit (e.g., r/wallstreetbets, r/stocks, r/investing) to gauge retail market sentiment.
- Live Data Visualizations: Interactive charts for Price Predictions, Sentiment Trends, Mention Velocity, and Engagement Scores.
- Secure Authentication: User login and registration system to save preferences and track personalized signals.
Frontend (Client):
- React.js (via Vite)
- Tailwind CSS (Styling & Design System)
- Framer Motion (Animations and premium UI feel)
- Recharts (Data visualization and live charts)
- Lucide React (Beautiful, consistent icons)
Backend (Server):
- Node.js & Express.js (API and server logic)
- MongoDB & Mongoose (Database and object modeling)
- Google Generative AI (Gemini) (For AI insights and text analysis)
- JWT & Bcrypt (Secure user authentication)
Follow these instructions to get a copy of the project up and running on your local machine.
Clone the repository and install dependencies for both the backend and frontend.
# 1. Clone the repository (if applicable)
git clone <your-repo-url>
cd Nova
# 2. Install backend dependencies
npm install
# 3. Install frontend dependencies
cd client
npm installCreate a .env file in the root folder (Nova/.env) and configure the following variables:
PORT=8000
MONGODB_URI=your_mongodb_connection_string_here
CORS_ORIGIN=http://localhost:5173
JWT_SECRET=your_super_secret_jwt_key
AWS_REGION=us-east-1
AWS_ACCESS_KEY_ID=your_access_key
AWS_SECRET_ACCESS_KEY=your_secret_key
NOVA_MODEL_ID=amazon.nova-pro-v1:0 You need two terminal windows to run both the backend and frontend simultaneously.
Terminal 1: Start the Backend Server
# From the root directory (Nova/)
npm run devYou should see a message indicating the server is running and MongoDB is connected.
Terminal 2: Start the Frontend Client
# From the client directory (Nova/client/)
cd client
npm run devThe React app should now be running at http://localhost:5173/.
Nova includes a powerful web scraper to collect market sentiment data from financial subreddits. To run the scraper, open a terminal in the root directory and execute:
npm run scrape:socialThis will run the script located at Web_Scrapper/social_scraper.js and output the collected data as CSV files in the csvs/ directory.
Nova/
├── client/ # React frontend application
│ ├── public/ # Static assets
│ ├── src/
│ │ ├── components/ # Reusable UI components (sections, ui)
│ │ ├── pages/ # Application pages (Landing, Login, Register)
│ │ ├── services/ # API integration (signalService, insightService)
│ │ ├── App.jsx # React root component with routing
│ │ └── index.css # Global Tailwind CSS styles
│ ├── package.json
│ └── vite.config.js
├── src/ # Node.js Express backend
│ ├── controllers/ # Route handlers
│ ├── models/ # Mongoose schemas
│ ├── routes/ # API endpoint definitions
│ ├── services/ # Aggregation & AI logic
│ ├── utils/ # Helper functions
│ └── index.js # Express app entry point
├── Web_Scrapper/ # Scraping scripts
│ ├── crawler.js
│ ├── social_scraper.js # Main Reddit sentiment scraper
│ └── report.js
├── csvs/ # Scraper output data
├── package.json # Root (backend) dependencies and scripts
└── .env # Environment variables (not checked into git)
Contributions, issues, and feature requests are welcome! Feel free to check the issues page if you want to contribute.
This project is licensed under the ISC License.