Skip to content

aleck31/xPA

Repository files navigation

xPA - eXtra Personal Assistant

xPA is a comprehensive personal assistant designed to help with daily management tasks, focusing initially on finance management and schedule management. The system is cloud-based with a web interface and leverages GenAI capabilities to enhance user experience.

Overview

xPA aims to be an intelligent personal assistant that helps users manage their daily lives more efficiently. By leveraging AI capabilities, xPA provides a natural and intuitive interface for managing finances, schedules, and more.

Technology Stack

  • Frontend: Next.js 15 (React 19)
  • UI: Tailwind CSS v4 & shadcn/ui components with Lucide Icons
  • Backend: AWS Amplify Gen 2 (serverless architecture)
  • Authentication: Amazon Cognito with OIDC, SAML, and custom authentication flows
  • API: GraphQL with AWS AppSync
  • Database: Amazon DynamoDB with real-time capabilities
  • Storage: Amazon S3 with fine-grained access control
  • AI/ML:
    • Amazon Bedrock (Claude, Nova, Llama)
    • Amazon Rekognition
    • Amazon Textract
  • Deployment: AWS Amplify Hosting with CI/CD

Project Structure

xPA/
├── amplify/           # AWS Amplify Gen2 configuration
│   ├── auth/            # Authentication resources
│   │   └── resource.ts
│   ├── data/            # Data resources & AI conversations
│   │   └── resource.ts    # GraphQL schema + AI Kit setup
│   ├── storage/         # S3 storage resources
│   │   └── resource.ts
│   └── backend.ts       # Backend configuration entry
├── app/               # Next.js App Router
│   ├── layout.tsx       # Global root layout
│   ├── (modules)/       # App modules (Route Group)
│   │   ├── layout.tsx     # App layout with sidebar navigation
│   │   ├── page.tsx       # Home dashboard (/)
│   │   ├── finance/       # Financial management (/finance)
│   │   ├── schedule/      # Schedule management (/schedule)
│   │   ├── assistant/     # AI assistant chat (/assistant)
│   │   └── knowledge/     # Knowledge management (/knowledge)
│   ├── auth/            # Authentication pages (Independent layout)
│   │   ├── layout.tsx     # Centered auth layout
│   │   ├── page.tsx       # Login page (/auth)
│   │   ├── verify-email/  # Email verification (/auth/verify-email)
│   │   └── reset-password/ # Password reset (/auth/reset-password)
│   ├── settings/        # Settings & preferences (Independent layout)
│   │   ├── layout.tsx     # Settings navigation layout
│   │   ├── page.tsx       # Settings overview (/settings)
│   │   ├── profile/       # User profile (/settings/profile)
│   │   └── preferences/   # App preferences (/settings/preferences)
│   └── api/             # API routes
│       └── agent/         # AI agent endpoints
├── components/          # Reusable React components
│   ├── ui/              # Shadcn/UI base components
│   ├── auth/            # Authentication components
│   ├── finance/         # Finance management components
│   ├── schedule/        # Schedule management components
│   ├── assistant/       # AI assistant components (ChatBot, etc.)
│   └── shared/          # Shared application components
├── lib/                 # Utility functions & configurations
│   ├── auth.ts          # Authentication utilities
│   ├── api.ts           # API utilities
│   └── agents/          # AI agent configurations
├── types/               # TypeScript type definitions
│   └── amplify.d.ts     # Amplify-generated types
├── styles/              # Global styles
│   ├── globals.css      # Global CSS styles
│   └── app.css          # Application-specific styles
├── public/              # Static assets
├── amplify_outputs.json # Amplify configuration (auto-generated)
├── package.json         # Project dependencies
├── next.config.js       # Next.js configuration
├── tailwind.config.js   # Tailwind CSS configuration
└── tsconfig.json        # TypeScript configuration

Getting Started

Prerequisites

  • Node.js (v22 or later)
  • npm or yarn
  • AWS Account
  • AWS CLI configured with appropriate permissions
  • Amplify CLI installed globally

Installation

  1. Clone the repository:
git clone https://github.com/your-username/xPA.git
cd xPA
  1. Install dependencies:
npm install
  1. Configure environment variables: Create a .env.local file in the project root:
# Authentication Configuration
XPA_USER_POOL_ID=your-user-pool-id
XPA_USER_POOL_CLIENT_ID=your-user-pool-client-id
XPA_IDENTITY_POOL_ID=your-identity-pool-id

# API Configuration
NEXT_PUBLIC_GRAPHQL_ENDPOINT=your-graphql-endpoint
AWS_REGION=your-region

# AI Configuration
XPA_BEDROCK_ENDPOINT=your-bedrock-endpoint
XPA_BEDROCK_MODEL_ID=your-model-id

# Storage Configuration
XPA_S3_BUCKET=your-s3-bucket

Deployment

Development (Sandbox)

  1. Start the Amplify sandbox (Back-end):
npx ampx sandbox  --identifier my-sandbox

# Deploy to sandbox environment
npx dotenvx run --env-file=.env.local -- ampx sandbox
  1. Start the development server (Front-end):
npm run dev

Production

  1. Configure production environment variables in AWS Amplify Console

  2. Deploy to production:

npx ampx deploy --env-name prod

Documentation

Roadmap

Phase 1 (Current)

  • Foundation & Core Features (Application Framework, Interface, Authentication)
  • Finance Management (FinancialBrain) - Income/Expense Tracking, Budget Management, Financial Dashboard
  • GenAI-Powered Assistant (Myners) - Real-Time Interaction, AI Agent Capabilities, Personalization

Phase 2

  • Schedule Management (TimeGuardian) - Event Management, Task Management, Calendar View, Reminder System
  • Cross-functional Integration - Financial events to calendar, expense forecasting
  • Additional Modules - Document Management, Goal Tracking

Phase 3

  • Family Sharing - Shared budgets, permission management
  • Mobile Application (Android) - Push notifications, offline functionality, camera integration

License

This project is licensed under the GPLv3 License - see the LICENSE file for details.

About

Personal billing, accounting, planning and task management tool

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors