Skip to content

nikhilmuz/cardman

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
Nikhil Kumar
Jun 30, 2023
3c9dc37 · Jun 30, 2023

History

14 Commits
Jun 20, 2023
Jun 23, 2023
Jun 20, 2023
Jun 24, 2023
Jun 20, 2023
Jun 20, 2023
Jun 24, 2023
Jun 30, 2023
Jun 24, 2023
Jun 20, 2023
Jun 20, 2023
Jun 24, 2023

Repository files navigation

Cardman API

A one-stop solution for managing all your Credit Card needs with an option to realtime track your Credit Card transactions.

Features

  • Realtime transaction tracking based on alert email auto-forward rules on your mailbox
  • Consolidated card balances

Getting started

  • Step 1: Create a Railway.app account and project

    • Visit the Railway.app website (https://railway.app/) and sign up for an account if you don't have one already.
    • Create a new project in Railway.app by connecting your Git repository containing this Django project.
  • Step 2: Set up environment variables in Railway.app

    • In your Railway.app project, navigate to the "Environment Variables" section.
    • Click on the "Add Variable" button.
    • Set the variable name as SNS_ENDPOINT_SECRET and provide a random secure UUID as the value. You can generate a UUID using an online UUID generator or use a programming language to generate one.
    • Click on the "Add Variable" button again.
    • Set the variable name as ENDPOINT_URI_WITH_SCHEMA and provide your app URL with the appropriate schema (HTTP or HTTPS).
    • Example: https://your-domain.com or http://your-domain.com
    • Save the environment variables.
  • Step 3: Deploy your Django project on Railway.app

    • Once your environment variables are set, click the "Deploy" button in Railway.app to deploy your Django project.
    • Railway.app will automatically build and deploy your project based on this Git repository's configuration.
    • That's it! Your Django project will be deployed on Railway.app, and the environment variables SNS_ENDPOINT_SECRET and ENDPOINT_URI_WITH_SCHEMA will be set. You can now use these variables to configure the SNS integration and use the provided endpoint URL.
  • Step 4: Set up an AWS account

    • Create an AWS account if you don't have one already.
    • Go to the AWS Management Console and navigate the Simple Email Service (SES) dashboard.
    • Follow the instructions to verify your email domain
    • Forward your MX Entry to AWS SES
  • Step 5: Configure SNS to handle email receiving

    • Go to the AWS Management Console and navigate to the SNS dashboard.
    • Click on "Create topic" to create a new topic.
    • Provide a name for the topic and click "Create topic" to create it.
    • Select the newly created topic from the list and click "Create subscription".
    • Choose the protocol as HTTPS/HTTP.
    • In the "Endpoint" field, enter the endpoint URL of your Django app where you want to receive the email payload, for example, https://your-domain.com/emails/inbound/SNS_ENDPOINT_SECRET/ (replace your-domain.com and SNS_ENDPOINT_SECRET with your actual values).
  • Step 6: Configure Django user:

    • Clone this repository and change database credentials to one from the railway app
    • Run python manage.py createsuperuser to create a user
    • Navigate to https://your-domain.com/admin and log in using the credentials generated.
    • Add a bank with an alert email used to receive emails (in lowercase) and parser name, i.e. AxisCCParser for Axis Bank.
    • Add a registered email used to forward emails to the server.

Usage

Navigate to /cards to view all the cards info Navigate to /cards/add to add a card Navigate to /transactions to view all the transactions info Navigate to /transactions/add to add a transaction Navigate to /banks to view all the bank info

Additional information

Feel free to open a PR with new parsers in /emails/email_parsers This is still a work in progress. Any feedback and bug reports are welcomed.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published