Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update README.md #2314

Open
wants to merge 1 commit into
base: aastu.web.g2.main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
161 changes: 139 additions & 22 deletions web/AASTU-web-group-2/a2sv-banking-system/README.md
Original file line number Diff line number Diff line change
@@ -1,36 +1,153 @@
This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
# A2SV Banking System - Group 2

## Project Overview

The **A2SV Banking System** is a modern, full-featured banking application designed for both web and mobile platforms. It enables users to perform various banking operations such as managing accounts, making transactions, applying for loans, and more, all from a user-friendly interface. This project is developed by **AASTU Web Group 2** as part of the A2SV start_up project.

### Key Features:
- **User Authentication**: Sign In and Sign Up functionality for secure user access.
- **Account Management**: Create, view, and manage multiple accounts.
- **Transactions**: Real-time deposits, withdrawals, transfers, and transaction history.
- **Investments & Credit Cards**: Management of investment portfolios and credit card applications.
- **Loans**: Apply for and manage loans.
- **Settings**: Manage user settings and preferences.
- **Services**: Explore additional banking services.

## Technology Stack

- **Frontend**: React.js, Next.js, tailwind
- **Testing**: Jest, Postman for API testing

## Getting Started

First, run the development server:
### Prerequisites

- Node.js and npm installed (version 14 or higher)

### Installation

1. Clone the repository:

```bash
git clone https://github.com/RealEskalate/a2sv-g5-project-phase-starter-project.git
cd web\AASTU-web-group-2/a2sv-banking-system
```

2. Install the dependencies:

```bash
npm install
```

3. Setup environment variables:
- Copy `.env.example` and rename it to `.env`.
- Set the JWT secret, and any other necessary environment variables.

4. Start the application:

```bash
npm run dev
```

5. The app should be running at `http://localhost:3000`.

## Usage

1. **Sign In / Sign Up**: Users can create accounts or log in to access banking features.
2. **Dashboard**: Overview of account balances, recent transactions, and quick access to services.
3. **Transactions**: Manage transactions such as deposits, withdrawals, and transfers.
4. **Investments**: Manage and track investment portfolios.
5. **Credit Cards**: Apply for and manage credit card accounts.
6. **Loans**: Apply for loans and manage existing loans.
7. **Services**: Access additional banking services like insurance, financial advisory, etc.
8. **Settings**: Customize account preferences, security options, and more.

## Project Structure

- **backend/**: Server-side code, handling API requests and database operations.
- **web/**: React.js client-side code for the web interface.

## Contributing

1. Fork the repository.
2. Create your feature branch (`git checkout -b feature/NewFeature`).
3. Commit your changes (`git commit -m 'Add NewFeature'`).
4. Push to the branch (`git push origin feature/NewFeature`).
5. Open a Pull Request.


## Contact

For questions, contact [Contributors](https://github.com/RealEskalate/a2sv-g5-project-phase-starter-project).

---

```bash
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
```
## Page Explanations

Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
### Sign In Page:
- **Purpose**: Allows users to authenticate and access their banking accounts securely.
- **Functionality**:
- Accepts username and password.
- Authenticates using the backend API (JWT tokens).
- Redirects authenticated users to the dashboard.

You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
### Sign Up Page:
- **Purpose**: Provides users with the ability to create a new banking account.
- **Functionality**:
- Collects user information (name, email, password, etc.).
- Validates input fields and interacts with the backend to create a new user in the database.
- On success, the user is redirected to the Sign In page.

This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.
### Dashboard:
- **Purpose**: Acts as the central hub for the user's banking activities.
- **Functionality**:
- Displays account balances.
- Shows recent transactions.
- Provides quick access links to various banking services such as accounts, transactions, and loans.

## Learn More
### Transactions Page:
- **Purpose**: Handles all user transactions including deposits, withdrawals, and transfers.
- **Functionality**:
- Provides a detailed history of the user's transactions.
- Allows users to filter transactions by date, type, and amount.
- Includes forms to initiate new deposits, withdrawals, or transfers.

To learn more about Next.js, take a look at the following resources:
### Accounts Page:
- **Purpose**: Allows users to manage their bank accounts.
- **Functionality**:
- Users can open new accounts, view existing accounts, and delete accounts.
- Displays detailed information on each account such as account number, balance, and transaction history.

- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
### Investments Page:
- **Purpose**: Provides a platform for users to manage and track their investment portfolios.
- **Functionality**:
- Displays current investment holdings.
- Allows users to buy and sell investment products like stocks or bonds.
- Shows real-time performance data for their investments.

You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
### Credit Cards Page:
- **Purpose**: Enables users to apply for and manage credit cards.
- **Functionality**:
- Users can apply for new credit cards by providing necessary details.
- View credit card balance, transaction history, and available credit.
- Manage credit card payments and billing cycles.

## Deploy on Vercel
### Loans Page:
- **Purpose**: Manages loan applications and payments.
- **Functionality**:
- Users can apply for personal or business loans by submitting required documentation.
- View current loans, remaining balance, and due dates.
- Make loan repayments through linked accounts.

The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
### Services Page:
- **Purpose**: Provides access to additional banking services such as insurance, financial advisory, and retirement plans.
- **Functionality**:
- Explore various service offerings.
- Allows users to sign up for new services or contact a service representative for more information.

Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
### Settings Page:
- **Purpose**: Allows users to customize their account settings.
- **Functionality**:
- Change personal information (e.g., name, email, password).
- Manage security options such as enabling two-factor authentication (2FA).
- Set notification preferences for transactions, account updates, etc.