Releases: Stork66722/InvestR
v1.2.0 - Authentication UI Refresh
🎨 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.cssfor 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 | ✅ 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:
- Enter username or email
- Enter password (with show/hide)
- Optional: Check "Remember me"
- Submit → Redirected based on role
Sign Up:
- Enter full name, email, username
- Create password → See strength meter
- Confirm password → See match indicator
- Submit → Account created → Redirect to sign in
Password Reset:
- Request reset → Email sent confirmation
- Click link in email → Set new password page
- Create new password → Success confirmation
- 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
- Live App: https://investr-iklw.onrender.com
- Sign In: https://investr-iklw.onrender.com/sign_in/
- Sign Up: https://investr-iklw.onrender.com/sign_up/
- Full Changelog: v1.1.0...v1.2.0
🙏 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
📊 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:
PortfolioSnapshotwith 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 modelcustomer/views.py- Added chart data API and snapshot creationcustomer/templates/customer/portfolio.html- Integrated Chart.jscustomer/static/css/portfolio.css- Chart stylinginvestr/urls.py- Added chart data routecustomer/migrations/0002_portfoliosnapshot.py- Database migration
🎨 Screenshots
Portfolio with interactive charts showing real trading data
🚀 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
- Live App: https://investr-iklw.onrender.com
- Full Changelog: v1.0.0...v1.1.0
- Documentation: See README.md
🙏 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
🎉 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
- 🌐 Live Application: https://investr-iklw.onrender.com
- 📊 Uptime Monitor: https://stats.uptimerobot.com/UuxJ2DiPIX
- 💻 Source Code: https://github.com/Stork66722/InvestR
- 📧 Contact: [email protected]
🐛 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