Skip to content

Latest commit

Β 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸŒ™ ReMindR

Your Day, Organized.

ReMindR is an automated daily productivity assistant designed for developers, managers, and tech teams. It transforms chaotic workdays into structured, organized summaries through Discord, AI processing, and seamless integrations with Notion and Google Calendar.

✨ Features

  • πŸŒ™ Evening Check-in: Automated Discord DM at 21:00 asking about your day
  • πŸ€– AI Processing: Cleans and structures messy notes into clear summaries
  • πŸ“ Notion Sync: Automatically creates beautifully formatted daily log pages
  • πŸ“… Calendar Integration: Pulls Google Calendar events for daily briefs
  • β˜€οΈ Morning Brief: Daily standup-ready summary delivered at 08:00
  • 🎨 Modern UI: Glassmorphism design with ReMindR branding

πŸ—οΈ Architecture

remindr/
β”œβ”€β”€ backend/          # FastAPI backend + Discord bot
β”œβ”€β”€ frontend/         # Vite + React web interface
└── bot/              # Discord bot handlers

Tech Stack:

  • Backend: FastAPI, PostgreSQL, SQLAlchemy
  • Frontend: Vite, React 19, TypeScript, React Router
  • Bot: discord.py
  • AI: OpenAI API
  • Integrations: Notion API, Google Calendar API
  • Scheduling: APScheduler

πŸš€ Getting Started

Prerequisites

  • Python 3.12+
  • Node.js 20+
  • PostgreSQL 15+
  • Discord Bot Token
  • OpenAI API Key
  • Notion Integration
  • Google Cloud Project (for Calendar API)

Backend Setup

cd backend

# Create virtual environment
python -m venv venv
.\venv\Scripts\activate  # Windows
# source venv/bin/activate  # Linux/Mac

# Install dependencies
pip install -r requirements.txt

# Copy environment file and configure
copy .env.example .env
# Edit .env with your API keys

# Run migrations (if using Alembic)
# alembic upgrade head

# Start backend
python -m app.main

Backend will run on http://localhost:8000

Frontend Setup

cd frontend

# Install dependencies
npm install

# Copy environment file and configure
copy .env.example .env
# Edit .env with your client IDs

# Start development server
npm run dev

Frontend will run on http://localhost:5173

Discord Bot Setup

cd bot

# (Uses same venv as backend)
# Configure bot token in backend/.env

# Run bot
python main.py

πŸ“ Configuration

Backend .env

DATABASE_URL=postgresql://user:password@localhost:5432/remindr
DISCORD_BOT_TOKEN=your_bot_token
DISCORD_CLIENT_ID=your_client_id
DISCORD_CLIENT_SECRET=your_client_secret
OPENAI_API_KEY=sk-...
NOTION_CLIENT_ID=your_notion_client_id
NOTION_CLIENT_SECRET=your_notion_client_secret
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
SECRET_KEY=your_jwt_secret
FRONTEND_URL=http://localhost:5173

Frontend .env

VITE_API_URL=http://localhost:8000
VITE_DISCORD_CLIENT_ID=your_discord_client_id
VITE_NOTION_CLIENT_ID=your_notion_client_id
VITE_GOOGLE_CLIENT_ID=your_google_client_id
VITE_APP_URL=http://localhost:5173

🎨 Branding

Colors:

  • Blue #4B91F1 - Primary focus
  • Violet #7C3AED - Intelligence
  • Mint #80FFCC - Accent
  • Gray Dark #1E1E1E - Background

Font: Inter

Design: Glassmorphism with gradient accents

πŸ“š API Documentation

Once the backend is running, visit:

  • Swagger UI: http://localhost:8000/docs
  • ReDoc: http://localhost:8000/redoc

πŸ§ͺ Testing

Backend Tests

cd backend
pytest

Frontend Tests

cd frontend
npm test

πŸ“¦ Deployment

Using Docker (Recommended)

# Build and run with Docker Compose
docker-compose up -d

Manual Deployment

  1. Backend: Deploy to a VPS, AWS EC2, or Platform as a Service (Render, Railway, Fly.io)
  2. Frontend: Deploy to Vercel, Netlify, or Cloudflare Pages
  3. Database: Use managed PostgreSQL (Supabase, Railway, Neon)
  4. Bot: Must be on always-on server with backend

πŸ›£οΈ Roadmap

  • Core backend structure
  • Database models
  • Frontend design system
  • Landing page
  • Onboarding wizard
  • Discord bot integration
  • AI service implementation
  • Notion API integration
  • Google Calendar integration
  • Dashboard UI
  • History viewer
  • Testing & deployment

πŸ“„ License

MIT License - See LICENSE file for details

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.


Made with πŸŒ™ by the ReMindR team

Your Day, Organized.

πŸŒ™ ReMindR - Phase 1: Project Setup Complete βœ… What Was Accomplished

Done

Backend Infrastructure βš™οΈ Created a complete FastAPI backend foundation with:

Project Structure: Organized backend with modular architecture Database Models: SQLAlchemy models for Users, Daily Logs, and Meetings Configuration System: Pydantic settings with environment variable management API Framework: FastAPI app with CORS middleware configured Dependencies: All required packages defined in requirements.txt Key Files Created backend/app/main.py

  • FastAPI application entry point backend/app/config.py
  • Settings and configuration backend/app/database.py
  • SQLAlchemy setup backend/app/models/user.py
  • User model with OAuth tokens backend/app/models/daily_log.py
  • Daily log model with JSON fields backend/app/models/meeting.py
  • Meeting cache model backend/.env.example
  • Environment configuration template Frontend Application 🎨 Built a modern React frontend with ReMindR branding:

Vite + React 19: Latest React with TypeScript support Design System: Complete CSS design system with glassmorphism Landing Page: Stunning marketing page with gradient hero Routing: React Router configured for multi-page app API Client: Axios setup with JWT interceptors Dependencies: Router, HTTP client, date utilities, icons Key Features Implemented Design System ( index.css ):

ReMindR color palette (Blue #4B91F1, Violet #7C3AED, Mint #80FFCC) Glassmorphism cards with hover effects Animated buttons with gradient backgrounds Responsive styling for mobile devices Custom animations (fade-in, slide-in, spin) Landing Page ( Landing.tsx ):

Hero section with floating logo animation "Your Day, Organized." tagline 4-step workflow visualization Features grid showcasing automation, AI, calendar, and Notion Call-to-action section API Services ( api.ts ):

Axios instance with base URL configuration JWT token interceptors Typed API methods for auth, users, logs, and testing Error handling with automatic redirect on 401 Constants ( constants.ts ):

Brand colors and OAuth URLs Discord, Notion, Google OAuth URL generators Timezone and time options for pickers πŸ“Έ Landing Page Preview Here's what we built:

Landing Page - Hero Section Review Landing Page - Hero Section

Landing Page - Features and CTA Review Landing Page - Features and CTA

Landing Page Walkthrough Landing Page Interaction Review Landing Page Interaction

πŸ—‚οΈ Project Structure c:\Users\strik\remindr
β”œβ”€β”€ backend/ β”‚ β”œβ”€β”€ app/ β”‚ β”‚ β”œβ”€β”€ models/ β”‚ β”‚ β”‚ β”œβ”€β”€ init.py β”‚ β”‚ β”‚ β”œβ”€β”€ user.py β”‚ β”‚ β”‚ β”œβ”€β”€ daily_log.py β”‚ β”‚ β”‚ └── meeting.py β”‚ β”‚ β”œβ”€β”€ routers/ β”‚ β”‚ β”œβ”€β”€ services/ β”‚ β”‚ β”œβ”€β”€ schemas/ β”‚ β”‚ β”œβ”€β”€ init.py β”‚ β”‚ β”œβ”€β”€ main.py β”‚ β”‚ β”œβ”€β”€ config.py β”‚ β”‚ └── database.py β”‚ β”œβ”€β”€ .env.example β”‚ └── requirements.txt β”œβ”€β”€ frontend/ β”‚ β”œβ”€β”€ src/ β”‚ β”‚ β”œβ”€β”€ pages/ β”‚ β”‚ β”‚ β”œβ”€β”€ Landing.tsx β”‚ β”‚ β”‚ └── Landing.css β”‚ β”‚ β”œβ”€β”€ components/ β”‚ β”‚ β”œβ”€β”€ services/ β”‚ β”‚ β”‚ └── api.ts β”‚ β”‚ β”œβ”€β”€ hooks/ β”‚ β”‚ β”œβ”€β”€ utils/ β”‚ β”‚ β”‚ └── constants.ts β”‚ β”‚ β”œβ”€β”€ App.tsx β”‚ β”‚ β”œβ”€β”€ main.tsx β”‚ β”‚ └── index.css β”‚ β”œβ”€β”€ .env.example β”‚ └── package.json β”œβ”€β”€ bot/ β”‚ β”œβ”€β”€ handlers/ β”‚ └── utils/ └── README.md βœ… Verification Results Frontend Dev Server VITE v7.2.4 ready in 240 ms ➜ Local: http://localhost:5173/ Status: βœ… Running Successfully

The landing page loads correctly with:

Gradient hero background Animated floating logo Glassmorphism cards with hover effects Responsive layout All sections visible (Hero, How It Works, Features, CTA) Backend Status Status: ⏳ Ready to Run

The backend is fully configured and ready to start once you:

Copy .env.example to .env and fill in API keys Set up PostgreSQL database Run: python -m app.main 🎯 Next Steps Immediate Configure Environment: Copy .env.example files and add API keys

Backend: Discord, OpenAI, Notion, Google credentials Frontend: Client IDs for OAuth flows Database Setup:

Install PostgreSQL locally or use a managed service Create remindr database Update DATABASE_URL in backend .env Phase 2: Discord Bot Integration πŸ€– Implemented the complete Discord bot architecture:

Bot Entry Point ( bot/main.py ):

Initializes Discord client with required intents Runs background scheduler loop (checks every minute) Handles connection events Handlers:

Evening Check-in ( bot/handlers/evening_checkin.py ): Queries backend for users to contact and sends formatted DMs. Message Handler ( bot/handlers/message_handler.py ): Processes user replies, sends to backend for AI processing, and returns Notion URLs. Morning Brief ( bot/handlers/morning_brief.py ): Fetches generated briefs and sends them to users. Backend Integration:

Created internal API router routers/bot.py to support bot operations Implemented endpoints for user checks, log processing, and brief generation Configured shared environment variables Utilities:

Message formatters for consistent, branded communication Error handling and user feedback messages Verification:

Backend API verified running on http://127.0.0.1:8000 Bot endpoints tested via curl: curl http://127.0.0.1:8000/bot/user-exists/12345

{"exists":true}

🎯 Next Steps Immediate Configure Environment: Copy .env.example files and add API keys

Backend: Discord, OpenAI, Notion, Google credentials Frontend: Client IDs for OAuth flows Database Setup:

Install PostgreSQL locally or use a managed service Create remindr database Update DATABASE_URL in backend .env Phase 3: AI/NLP Processing 🧠 Integrated OpenAI to power the intelligence of ReMindR:

AI Service ( backend/app/services/ai_service.py ):

Summarization: Transforms raw text into structured JSON (tasks, blockers, insights, priorities). Notion Generation: Converts structured data into formatted Markdown for Notion pages. Daily Brief: Generates concise, actionable morning briefs based on yesterday's data and today's meetings. Prompts:

Engineered specific prompts for French language output. Enforced JSON structure for reliable parsing. Designed "Daily Brief" persona to be professional and motivating. Integration:

Connected AI service to Bot Router. Added fallback mechanisms for API errors or rate limits. Created test endpoints to verify AI outputs without Discord. Verification:

Tested summarize_day with mock API key -> Correctly returns fallback structure. Verified integration with process_daily_log endpoint. 🎯 Next Steps Immediate Configure Environment: Copy .env.example files and add API keys

Backend: Discord, OpenAI, Notion, Google credentials Frontend: Client IDs for OAuth flows Database Setup:

Install PostgreSQL locally or use a managed service Create remindr database Update DATABASE_URL in backend .env Phase 4: Notion Integration πŸ“ Connected ReMindR to Notion for persistent daily logging:

Notion Service ( backend/app/services/notion_service.py ):

Implemented notion-client wrapper. Block Generator: Converts structured JSON summaries into Notion blocks (Headings, Bulleted Lists). Page Creation: Automatically creates pages in a parent database/page with the correct date title. Integration:

Updated Bot Router to trigger Notion page creation after AI processing. Added logic to handle missing tokens gracefully (for testing). Verification:

Verified block generation logic via test endpoint test/create-notion-page. Confirmed that JSON structure is correctly mapped to Notion UI elements. 🎯 Next Steps Immediate Configure Environment: Copy .env.example files and add API keys

Backend: Discord, OpenAI, Notion, Google credentials Frontend: Client IDs for OAuth flows Database Setup:

Install PostgreSQL locally or use a managed service Create remindr database Update DATABASE_URL in backend .env Phase 5: Google Calendar Integration Implement Google Calendar API wrapper Fetch today's events for Daily Brief Handle timezones correctly Phase 7: Frontend Pages Onboarding wizard (4-step setup flow) Dashboard with connection status cards History viewer with daily log timeline OAuth callback handlers πŸ§ͺ Testing Performed Frontend Build: βœ… Successfully compiled with Vite Dependencies: βœ… Installed with --legacy-peer-deps flag (React 19 compatibility) Landing Page: βœ… Renders correctly with all animations Routing: βœ… React Router configured and navigation ready Design System: βœ… Glassmorphism effects and gradients working πŸ“ Notes React 19 Compatibility: Had to use --legacy-peer-deps due to some libraries not yet supporting React 19 Removed react-calendar: Not compatible with React 19; will implement custom calendar or wait for update Design: Fully matches ReMindR branding specification with glassmorphism, gradients, and animations πŸš€ Ready to Continue! The foundation is solid and ready for the next phases:

Backend API routes and services Discord bot handlers AI processing integration Notion and Google Calendar APIs Complete frontend onboarding flow All code follows best practices with TypeScript type safety, modular architecture, and clean separation of concerns.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages