Skip to content

Releases: Stork66722/InvestR

v1.2.0 - Authentication UI Refresh

27 Dec 21:28

Choose a tag to compare

🎨 v1.2.0 - Authentication UI Refresh

Release Date: December 27, 2025

Complete redesign of authentication pages with modern UI, interactive features, and persistent login functionality!


✨ New Features

Interactive Password Management

  • Show/Hide Password - Eye icon toggles to reveal/hide passwords
  • Password Strength Meter - Real-time indicator (weak/medium/strong) on sign up
  • Password Match Validation - Visual confirmation when passwords match
  • Remember Me - Optional persistent login (2 weeks)

Modern UI Design

  • Unified Styling - Single auth.css for consistent design across all auth pages
  • Logo Branding - InvestR logo prominently displayed on all pages
  • Hero Sections - Engaging visuals with gradient backgrounds
  • Card-Based Layout - Clean, professional card design
  • Loading States - Animated buttons during form submission

Enhanced User Experience

  • Real-time Validation - Instant feedback on form inputs
  • Mobile Responsive - Optimized for all screen sizes
  • Smooth Animations - Polished transitions and effects
  • Better Error Handling - Clear, helpful error messages
  • Accessibility - Improved focus states and ARIA labels

Complete Password Reset Flow

  • Modernized Design - All 4 password reset pages updated
  • Success Icons - Visual feedback on each step
  • Clear Instructions - Step-by-step guidance
  • Invalid Link Handling - Helpful messages for expired/invalid links

🎨 Design Improvements

Visual Updates

  • Green gradient backgrounds matching landing page theme
  • Professional typography and spacing
  • Color-coded validation (green = success, red = error)
  • Interactive hover states and transitions
  • Touch-friendly mobile interface

Pages Updated

  • Sign In - Login with username/email, remember me option
  • Sign Up - Registration with password strength validation
  • Password Reset - Request reset link
  • Reset Email Sent - Confirmation with instructions
  • Set New Password - Create new password with toggles
  • Reset Complete - Success confirmation

🛠️ Technical Implementation

Frontend

  • auth.css - Unified authentication stylesheet
  • auth.js - Interactive features
    • Password toggle functionality
    • Password strength calculator
    • Password match validation
    • Form loading states

Backend

  • Custom Login View - Replaces Django's default LoginView
  • Session Management - Configurable session expiry
  • Remember Me Logic - Per-login session control
  • Username/Email Login - Flexible authentication

Session Configuration

SESSION_COOKIE_AGE = 1209600  # 2 weeks
SESSION_EXPIRE_AT_BROWSER_CLOSE = False  # Allow persistence
SESSION_COOKIE_HTTPONLY = True  # Security
SESSION_COOKIE_SAMESITE = 'Lax'  # CSRF protection

🔒 Security Features

  • CSRF Protection - All forms protected
  • HTTPOnly Cookies - JavaScript cannot access session
  • Password Validation - Django's built-in validators
  • Secure Sessions - Configurable for HTTPS in production
  • SameSite Cookies - CSRF attack prevention

🌐 Browser Compatibility

Browser Remember Me Password Features UI/UX
Chrome ✅ Works ✅ Works ✅ Perfect
Safari ✅ Works ✅ Works ✅ Perfect
Firefox ✅ Works ✅ Works ✅ Perfect
Edge ✅ Works ✅ Works ✅ Perfect
Brave ⚠️ Privacy blocks ✅ Works ✅ Perfect

Note: Brave blocks persistent cookies by default (privacy feature). Users can allow for localhost.


📱 Mobile Support

  • Fully responsive design
  • Touch-optimized buttons and inputs
  • Mobile-friendly form validation
  • Adaptive layouts for all screen sizes
  • Hero sections hide on small screens for better UX

🎯 User Flow Improvements

Sign In:

  1. Enter username or email
  2. Enter password (with show/hide)
  3. Optional: Check "Remember me"
  4. Submit → Redirected based on role

Sign Up:

  1. Enter full name, email, username
  2. Create password → See strength meter
  3. Confirm password → See match indicator
  4. Submit → Account created → Redirect to sign in

Password Reset:

  1. Request reset → Email sent confirmation
  2. Click link in email → Set new password page
  3. Create new password → Success confirmation
  4. Sign in with new password

🐛 Known Issues

None at this time. All features tested and working.


💡 Coming in v1.3.0

Potential features for next release:

  • User profile settings page
  • Change password while logged in
  • Email change with verification
  • Account preferences
  • Real-time stock data integration

🔗 Links


🙏 Acknowledgments

  • Django authentication framework
  • Modern CSS design patterns
  • Community feedback on UX improvements

Built with ❤️ by the InvestR Team

A capstone project demonstrating modern web development practices

v1.1.0 - Dynamic Portfolio Charts

14 Dec 01:57

Choose a tag to compare

📊 v1.1.0 - Dynamic Portfolio Charts

Release Date: December 13, 2025

Major feature update adding interactive data visualization to the portfolio page!


✨ New Features

Interactive Charts

  • 📈 Portfolio Value Over Time - Line chart showing total portfolio value history
  • 📊 Stock Performance - Bar chart displaying gains/losses for each stock position
  • 🥧 Portfolio Allocation - Pie chart showing asset distribution (stocks + cash)

Time Range Selection

  • 1D - Last 24 hours
  • 1W - Last week (default)
  • 1M - Last month
  • 1Y - Last year
  • ALL - Complete history

Interactive Features

  • Hover Tooltips - Detailed information on hover
  • Color Coding - Green for gains, red for losses
  • Responsive Design - Works beautifully on mobile and desktop
  • Real-time Updates - Charts update automatically after trades

🛠️ Technical Implementation

Backend

  • New Model: PortfolioSnapshot - Tracks portfolio value at each point in time
  • New API Endpoint: GET /api/v1/portfolio/chart-data/?days=X
  • Automatic Snapshots: Created on every buy/sell trade
  • Efficient Queries: Optimized database queries for chart data

Frontend

  • Chart.js 4.4.0 - Professional charting library
  • 3 Chart Types: Line, Bar, Pie
  • Custom Styling - Matches InvestR green theme
  • Mobile Responsive - Charts adapt to screen size

Database

  • New Table: PortfolioSnapshot with indexes for performance
  • Migration: 0002_portfoliosnapshot.py
  • Fields: total_value, cash_balance, holdings_value, snapshot_date

📊 API Endpoint

GET /api/v1/portfolio/chart-data/?days=30

Response:

{
  "portfolio_history": {
    "labels": ["Dec 13, 14:30", "Dec 13, 15:00", ...],
    "values": [10000.00, 10250.00, ...]
  },
  "stock_performance": [
    {
      "ticker": "AAPL",
      "gain_loss": 250.00,
      "gain_loss_pct": 12.5
    }
  ],
  "stock_allocation": [
    {"ticker": "AAPL", "value": 5000.00},
    {"ticker": "CASH", "value": 5000.00}
  ]
}

📝 Files Changed

  • customer/models.py - Added PortfolioSnapshot model
  • customer/views.py - Added chart data API and snapshot creation
  • customer/templates/customer/portfolio.html - Integrated Chart.js
  • customer/static/css/portfolio.css - Chart styling
  • investr/urls.py - Added chart data route
  • customer/migrations/0002_portfoliosnapshot.py - Database migration

🎨 Screenshots

Portfolio with interactive charts showing real trading data

Screenshot 2025-12-13 at 7 55 08 PM

🚀 Deployment Notes

Production deployment includes:

  • ✅ Database migration applied automatically
  • ✅ Chart.js loaded via CDN (no build step needed)
  • ✅ Backwards compatible (existing data preserved)
  • ✅ Snapshots created automatically on new trades

For existing users:

  • Charts will populate as new trades are made
  • Or run initial snapshot creation via Render Shell

📈 Performance

  • Chart rendering: <100ms
  • API response time: <200ms
  • Database queries: Optimized with indexes
  • Mobile performance: Smooth scrolling and interactions

🎯 What's Next (v1.2.0)

Planned features for next release:

  • User settings and profile management
  • Updated sign in/sign up UI
  • Real-time stock data integration
  • Transaction email notifications

🔗 Links


🙏 Acknowledgments

  • Chart.js Team for the excellent charting library
  • Chart.js Community for documentation and examples

Built with ❤️ by the InvestR Team

v1.0.0 - Initial Production Release

12 Dec 03:18

Choose a tag to compare

🎉 InvestR v1.0.0 - Initial Production Release

Release Date: December 11, 2025

InvestR is now production-ready! A full-stack stock trading simulation platform with real-time portfolio tracking, professional email integration, and persistent data storage.


✨ Core Features

📈 Trading Platform

  • Portfolio Management - Real-time tracking of stocks, cash, and total value
  • Buy/Sell Stocks - Interactive order placement with confirmation modals
  • Deposit/Withdraw Cash - Manage account cash balance
  • Transaction History - Complete audit trail of all trades
  • Market Hours - Configurable trading hours with open/close status

🔐 Authentication & Security

  • User Registration - Secure sign up with form validation
  • Login System - Session-based authentication with JWT support
  • Password Reset - Professional HTML email-based password recovery with SendGrid
  • Role-Based Access - Customer and Admin role separation
  • Session Management - Secure logout with redirect to landing page

📧 Professional Email System

  • SendGrid Web API Integration - Bypasses SMTP port blocking on Render
  • Branded HTML Emails - Beautiful password reset emails matching InvestR branding
  • Plain Text Fallback - Accessible email format for all clients
  • Custom Email Backend - Django email backend for HTML multipart emails
  • Email Notifications - Success messages and user feedback

👨‍💼 Admin Dashboard

  • Stock Management - Create new stocks with prices and float shares
  • Market Hours Control - Configure trading hours
  • Price Generation - Update stock prices dynamically
  • User Overview - View and manage all user accounts
  • System Monitoring - Track platform activity

🎨 User Interface

  • Professional Landing Page - Modern gradient design with feature showcase
  • Responsive Design - Mobile-friendly across all pages
  • Complete Branding - Favicon set for all devices (16x16, 32x32, 180x180, 192x192, 512x512)
  • Toast Notifications - Success/error messages with auto-dismiss
  • Clean Navigation - Intuitive user flows and redirects

🛠️ Technical Stack

Backend

  • Python 3.12
  • Django 5.2.8
  • Django REST Framework 3.16.1
  • PostgreSQL (persistent database on Render)
  • Gunicorn 23.0.0 (WSGI server)
  • JWT Authentication (django-rest-framework-simplejwt)

Frontend

  • HTML5 / CSS3 / JavaScript
  • WhiteNoise 6.8.2 (static file serving)
  • Mobile-responsive design
  • External CSS for landing page

Infrastructure & Deployment

  • Hosting: Render (free tier with auto-deploy)
  • Database: PostgreSQL on Render (1GB persistent storage)
  • Email: SendGrid Web API (100 emails/day free tier)
  • Monitoring: UptimeRobot 24/7 (99.9% uptime)
  • SSL/HTTPS: Automatic via Render
  • CI/CD: GitHub webhook → Render auto-deploy

Security & DevOps

  • GitGuardian secret scanning with pre-commit hooks
  • SSH Keys rotated (4096-bit RSA, December 2025)
  • Environment Variables for all sensitive data
  • DEBUG=False in production
  • CSRF Protection enabled
  • SECRET_KEY from environment (not in code)

🔧 Technical Highlights

Custom Solutions

  • SendGrid Email Backend - Custom Django email backend bypassing Render's SMTP port 587 blocking
  • Template Configuration - Fixed Django TEMPLATES DIRS for custom password reset emails
  • Database Persistence - PostgreSQL configuration ensuring data survives deployments
  • WhiteNoise Integration - Compressed and cached static file serving

Architecture Decisions

  • Web API over SMTP - Uses SendGrid Web API instead of SMTP for reliability
  • Persistent Database - PostgreSQL with connection pooling and health checks
  • Environment-Based Config - DEBUG, SECRET_KEY, DATABASE_URL from environment
  • Automated Deployments - Push to main → Render auto-deploys

📊 Project Statistics

  • Lines of Code: ~5,000+
  • Database Models: 5 (CustomUser, BrokerageAccount, Stock, Order, Trade)
  • Views: 15+
  • Templates: 12 (including 4 password reset templates)
  • API Endpoints: 8+
  • Email Templates: 3 (HTML, plain text, subject)
  • Git Commits: 90+
  • Deployment Time: <3 minutes
  • Cost: $0/month

🎓 Academic Information

  • Institution: Arizona State University
  • Course: IT Capstone Project
  • Team Members:
    • Jorge Aguilar
    • Richard Lahaie
    • Summer Olson
  • Grade: A+
  • Semester: Fall 2025
  • Methodology: Agile development with sprint planning

🔗 Links


🐛 Known Issues

None at this time. All core features are stable and production-ready.


🔮 Coming Soon (v1.1.0)

  • Dynamic Portfolio Charts - Interactive visualizations with Chart.js
  • Stock Performance Graphs - Line, bar, and pie charts
  • Historical Data Tracking - Portfolio value over time
  • Time Range Selectors - View performance across different periods

📝 Important Notes

  • This is an educational project for learning purposes
  • No real money or financial transactions are involved
  • Not actual financial advice
  • Demo credentials available on request

🙏 Acknowledgments

  • SendGrid for reliable email delivery
  • Render for free hosting and easy deployment
  • UptimeRobot for 24/7 monitoring
  • Django Community for excellent documentation and support
  • ASU Faculty for project guidance

📸 Screenshots

Screenshots will be added in future releases with visual features.


Built with ❤️ by the InvestR team