Version: 1.0.0
Django Version: 5.0.2
Python Version: 3.10
Deployment: AWS EC2
Database: SQLite
FakePal is a secure online payment service built using the Django framework. The application supports essential functionalities such as user registration, direct money transfers, payment requests, and transaction tracking. While FakePal simulates a real online payment system, it does not connect to actual bank accounts. Instead, each user is provided with a simulated account balance upon registration.
The project is fully implemented and hosted on AWS, and it includes a responsive front-end designed with Bootstrap 5 and Crispy Forms, ensuring compatibility across desktop and mobile devices.
-
User Registration and Login:
- Users can register an account and are automatically provided with a starting balance of £1000.
- After registration, users can log in to access the platform's features.
-
Direct Money Transfers:
- Users can transfer funds to other users within the system.
- Each transaction is handled securely using Django's
@transaction.atomic
decorator to ensure ACID properties.
-
Payment Requests:
- Users can request payments from others, which can be accepted, declined, or canceled.
- Notifications are provided for all actions related to requests.
-
Transaction and Request Tracking:
- Users can view all their transactions and requests at any time, with each entry timestamped using an Apache Thrift service.
-
Administrative Functions:
- Admins can manage all users, view all transactions, and register new administrators.
-
Currency Conversion:
- A RESTful web service handles currency conversion, although the rates are hard-coded for simplicity.
-
Security:
- Full HTTPS communication for all interactions.
- Protection against XSS, CSRF, and SQL injection through Django’s middleware and ORM.
-
Cloud Deployment:
- The application is deployed using Nginx and Gunicorn on AWS, with automated service management to ensure continuous availability.
-
Clone the Repository:
git clone https://github.com/your-repo/fakepal.git cd fakepal
-
Set Up a Virtual Environment:
python3 -m venv venv source venv/bin/activate
-
Install Dependencies:
pip install -r requirements.txt
-
Run Migrations:
python manage.py migrate
-
Create Superuser (optional):
python manage.py createsuperuser
-
Run the Development Server:
python manage.py runserver
-
Access the Application:
You can access the application from here.
- Register/Login: Create an account or log in to an existing one.
- Transfers: Send money to other users within the platform.
- Requests: Request payments from other users and manage received requests.
- Notifications: Keep track of transaction statuses through the notification system.
- Manage Users: View and manage all registered users.
- View Transactions: Monitor all transactions and requests across the platform.
- Register Admins: Add new administrators to the system.
Unit tests have been provided to ensure the functionality of the application. To run the tests:
python manage.py test
Detailed documentation is provided and generated using Sphinx. For a complete guide to the project, refer to the documentation included in the project files.
This project is licensed under the MIT License. See the LICENSE file for details.