A one-stop solution for managing all your Credit Card needs with an option to realtime track your Credit Card transactions.
- Realtime transaction tracking based on alert email auto-forward rules on your mailbox
- Consolidated card balances
-
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.
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
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.