logo Use CA10RAM to get 10%* Discount.
Order Nowlogo
(5/5)

This assignment is about the design and implementation of a web-based, multi-user payment service using the Django framework.

INSTRUCTIONS TO CANDIDATES
ANSWER ALL QUESTIONS

1. Introduction

This assignment is about the design and implementation of a web-based, multi-user payment service using the Django framework. The system is a much-simplified version of PayPal. Through a  web interface, users should be able to send money to other registered users (e.g., using their registered email address as their unique identifier), request money from other registered users and manage their own account (e.g., look at their recent transactions). Super-users (i.e., admins) should be able to access all user accounts and transactions. 

 

After successfully completing the assignment, you will have demonstrated that you can:

 

design and implement user interfaces using Templates

design and implement business logic using Views

design and implement data access using Models

design and implement a secure multi-user system

2. Project Description

 

Online payment services, such as PayPal, allow users to connect their online accounts to their bank accounts, debit and credit cards. In such systems, users can usually transfer money from their bank accounts to the online account, receive payments to this account from other users, push money from the online account to their bank accounts, among others.

 

For simplicity, we will assume in this project that all registered users start with a specific amount of money (e.g., £1000) and no connections to bank accounts exist.

 

Note: This is pretended money, and no connection to real sources of money should exist.

 

To register, a user must provide a username, a first and last name, an email address and a password. Each user has a single online account whose currency is selected upon registration. Users can choose to have their account in GB Pounds, US dollars or Euros. In any case, the system should make the appropriate conversion to assign the right initial amount of money (e.g., if the baseline is £1000, then the initial amount should be 1000 * GBP_to_USD_rate US dollars).

 

A user can instruct the system to make a direct payment to another user. If this request is accepted (i.e., the recipient of the payment exists and there are enough funds), money is transferred (within a single Django transaction) to the recipient immediately. Users should be able to check for notifications regarding payments in their accounts.

 

A user can instruct the system to request payment from some other user. A user should be able to check about such notifications for payment requests. They can reject the request or, in response to it, make a payment to the requesting user.

 

Users can access all their transactions, that is, sent and received payments and requests for payments as well as their current account balance.

 

An administrator can see all user accounts and all transactions.

 

A separate RESTful web service must implement currency conversion. The exchange rates will be statically assigned (hard-coded) in the RESTful service source code.

 

3. Penalties 

 

You will receive 0 marks for your submission if it does not respect the following THREE requirements.  

 

1. You should use these naming conventions:

 

database: db.webapps

context path: /webapps2023

 

2. The submitted IntelliJ Django project should follow this structure:  

 

webapps2023

│   db.webapps

│   manage.py

│  

├───templates

├───register

│   │   admin.py

│   │   apps.py

│   │   models.py

│   │   tests.py

│   │   views.py

│   │   __init__.py

│   │

│   └───migrations

│           __init__.py

├───webapps2023

│         asgi.py

│         settings.py

│         urls.py

│         wsgi.py

│         __init__.py

├───payapp

│  ...

 

3. Your IntelliJ Django project should compile without any errors. 

 

A penalty of 4% will be applied if the source code is not well-formatted and self-documenting (or well-documented). 

4. System Architecture and Mark Allocation

 

4.1. The Presentation Layer  (20%)

 

The presentation layer consists of a set of templates through which users and administrators interact with the web application.

 

Users should be able to:

 

View all their transactions

Make direct payments to other registered users

Request payments from registered users

Administrators should be able to see:

 

user accounts

all payment transactions

and register new administrators

 

 

(5/5)
Attachments:

Related Questions

. Introgramming & Unix Fall 2018, CRN 44882, Oakland University Homework Assignment 6 - Using Arrays and Functions in C

DescriptionIn this final assignment, the students will demonstrate their ability to apply two ma

. The standard path finding involves finding the (shortest) path from an origin to a destination, typically on a map. This is an

Path finding involves finding a path from A to B. Typically we want the path to have certain properties,such as being the shortest or to avoid going t

. Develop a program to emulate a purchase transaction at a retail store. This program will have two classes, a LineItem class and a Transaction class. The LineItem class will represent an individual

Develop a program to emulate a purchase transaction at a retail store. Thisprogram will have two classes, a LineItem class and a Transaction class. Th

. SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of Sea Ports. Here are the classes and their instance variables we wish to define:

1 Project 1 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of

. Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of Sea Ports. Here are the classes and their instance variables we wish to define:

1 Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of

Ask This Question To Be Solved By Our ExpertsGet A+ Grade Solution Guaranteed

expert
Atharva PatilComputer science

570 Answers

Hire Me
expert
Chrisantus MakokhaComputer science

732 Answers

Hire Me
expert
AyooluwaEducation

997 Answers

Hire Me
expert
RIZWANAMathematics

819 Answers

Hire Me

Get Free Quote!

341 Experts Online