Skip to content

edoardoted99/memoria

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Memoria - Friend Relationship Management

A Django-based personal CRM that helps you stay in touch with the people you care about. It syncs with Google Contacts, Google Calendar, and Google Tasks, and uses AI to suggest conversation topics when it's time to reach out.

Screenshots

Welcome Contacts |

Features

  • Google Contacts sync - Import and keep your contacts up to date
  • Google Calendar integration - View upcoming events with your contacts
  • Google Tasks integration - Automatically create follow-up reminders
  • AI-powered suggestions - Uses Groq (LLaMA) to analyze past interactions and suggest conversation topics
  • Daily email digest - Morning email with today's tasks, overdue items, and contacts to reach out to
  • Keep-in-touch tracking - Set follow-up frequencies per contact and get reminded when it's time

Tech Stack

  • Backend: Django 4.2, Celery, Redis
  • Database: SQLite (local) / MySQL 8.0 (Docker)
  • Auth: django-allauth with Google OAuth2
  • AI: Groq API (LLaMA 3)
  • Infrastructure: Docker Compose, Nginx

Prerequisites

Setup

  1. Clone the repository

    git clone https://github.com/your-username/memoria.git
    cd memoria
  2. Create your environment file

    cp .env.example .env

    Edit .env and fill in your actual values:

    • SECRET_KEY - Generate one with python -c "from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())"
    • GROQ_API_KEY - From Groq Console
    • GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET - From Google Cloud Console (see below)
    • Email and database credentials as needed
  3. Configure Google OAuth2

    • Go to Google Cloud Console
    • Create a new project (or select an existing one)
    • Enable the following APIs:
      • People API
      • Google Calendar API
      • Google Tasks API
    • Go to Credentials > Create Credentials > OAuth 2.0 Client ID
    • Set the authorized redirect URI to: http://localhost:8080/accounts/google/login/callback/
    • Copy the Client ID and Client Secret into your .env file
  4. Start the application

    docker compose up --build
  5. Run database migrations

    docker compose exec web python manage.py migrate
  6. Create a superuser (optional)

    docker compose exec web python manage.py createsuperuser
  7. Access the application

    Open http://localhost:8080 in your browser.

Project Structure

memoria/
├── docker-compose.yml          # Docker services (web, redis, celery, nginx, db)
├── docker-compose_production.yml
├── nginx/                      # Nginx configuration
├── myproject/
│   ├── Dockerfile
│   ├── manage.py
│   ├── requirements.txt
│   ├── myproject/              # Django project settings
│   │   ├── settings.py
│   │   ├── urls.py
│   │   ├── tasks.py            # Celery periodic tasks
│   │   └── utils.py            # Email utility
│   ├── memoria/                # Main app (contacts, logs, views)
│   ├── google_integration/     # Google API integration (contacts, tasks, calendar)
│   ├── templates/              # Django templates
│   └── staticfiles/            # Static assets
└── .env.example                # Environment variables template

License

MIT

About

just a Friend Relationship Management with Google integrations ad AI tools

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors