Skip to content
Open
Show file tree
Hide file tree
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
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
33 changes: 17 additions & 16 deletions initial src-code/Backend/app.py
Original file line number Diff line number Diff line change
@@ -1,20 +1,28 @@
from __future__ import annotations
from flask import Flask, render_template, request
import main
from flask import Flask, request, jsonify
from flask_cors import CORS
from main import Bank
from cloud_database import Database


app = Flask(__name__)

@app.route('/')
def home():
return render_template('login.html')
CORS(app)
connection_string = "mongodb+srv://tahshinshahriar:i2NK6Sc0jmCnhjWO@cluster0.nafiayb.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0"
db_name = "financial-data"
collection_name = "user-info-collection"
db = Database(connection_string, db_name, collection_name)
bank = Bank()

#Login Page
@app.route('/login', methods=['POST'])
def login():
username = request.form['xxxx']
password = request.form['xxxx']

data = request.json
email = data.get('email')
password = data.get('password')
if db.get_password(email) == password:
return jsonify({'message': 'Login successful!'}), 200
return jsonify({'message': 'Invalid credentials!'}), 401


# Teller Interface
Expand All @@ -29,21 +37,14 @@ def tellerHome():
return tellerInterface(teller)


@app.route('/reg')
def register():
return render_template('registration.html')


@app.route('/regp', methods=['POST'])
@app.route('/register-client', methods=['POST'])
def reg():
username = request.form['username']
name = request.form['name']
email = request.form['email']
phone = request.form['phone']
addr = request.form['addr']

clientp = teller.registerClient(username, name, email, phone, addr)

if clientp != False or None:
return render_template('regsuccess.html', name=clientp.username, email=clientp.e_mail, passwd=clientp._password, phone=clientp.phone, accno=clientp._accountNumber, addr=clientp.address)
else:
Expand Down
34 changes: 34 additions & 0 deletions initial src-code/Backend/cloud_database.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
from pymongo import MongoClient
import certifi

class Database:
def __init__(self, connection_string, db_name, collection_name):
self.connection_string = connection_string
self.db_name = db_name
self.collection_name = collection_name
self.client = None
self.db = None
self.collection = None
self.connect()

def connect(self):
self.client = MongoClient(self.connection_string, tlsCAFile=certifi.where())
self.db = self.client[self.db_name]
self.collection = self.db[self.collection_name]


def get_password(self, username:str):
user_data = self.collection.find_one({"Username": username})
if user_data:
return user_data.get("Password")
return None

def get_userinfo(self, username:str):
user_data = self.collection.find_one({"Username": username})
return user_data

def insert_user(self, user_data:dict):
result = self.collection.insert_one(user_data)
return result.inserted_id


22 changes: 13 additions & 9 deletions initial src-code/Backend/main.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,19 @@
import ClientAccount
import TellerAccount
import EtransferPayee
from datetime import datetime
import Payee
from database import Database
from cloud_database import Database

class Bank:
database = Database('/Users/tahshin/CodeBlocks/Slack-Bot/creds.json', "Test")
sheet = database.open_worksheet('UserInfo')
def __init__(self):
connection_string = "mongodb+srv://tahshinshahriar:i2NK6Sc0jmCnhjWO@cluster0.nafiayb.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0"
db_name = "financial-data"
collection_name = "user-info-collection"
db = Database(connection_string, db_name, collection_name)

# def login(self, usrname, passwd):
def login(self, email, passwd):
if self.db.get_password(email) == passwd:
return True
return False






21 changes: 16 additions & 5 deletions src/pages/IntroPage/index.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import * as React from 'react';
import {Link, useLocation} from 'react-router-dom';
import {Link, useLocation, useNavigate} from 'react-router-dom';
import Avatar from '@mui/material/Avatar';
import Button from '@mui/material/Button';
import CssBaseline from '@mui/material/CssBaseline';
Expand All @@ -12,6 +12,8 @@ import Typography from '@mui/material/Typography';
import { createTheme, ThemeProvider } from '@mui/material/styles';
import HeaderB from '../../components/header';

import axios from 'axios';




Expand Down Expand Up @@ -48,15 +50,24 @@ function Copyright(props) {
function IntroductionPage() {
const location = useLocation();
const accountCreated = location.state?.accountCreated || false;
const navigate = useNavigate();


const handleSubmit = (event) => {
event.preventDefault();
const data = new FormData(event.currentTarget);
console.log({
email: data.get('email'),
password: data.get('password'),
});
const email = data.get('email');
const password = data.get('password');

axios.post('http://localhost:5000/login', { email, password })
.then(response => {
console.log(response.data);
navigate('/dashboard');
})
.catch(error => {
console.error('There was an error!', error);
// Handle error (e.g., show an error message)
});
};


Expand Down