A comprehensive banking application that integrates with Fayda for secure identity verification and provides a complete banking dashboard experience.
- Secure authentication via Fayda integration
- Professional banking dashboard
- Account verification status tracking
- Loan eligibility checker
- Account balance overview
- Transaction history with filtering
- Exchange rates with currency converter
- User profile management with KYC fields
- Session-based authentication with logout functionality
- Python 3.11 or higher
- Git
git clone <repository-url>
cd oidc_projectLinux/Mac:
python3 -m venv venv
source venv/bin/activateWindows:
python -m venv venv
venv\Scripts\activatepip install -r requirements.txtRun the following command to create and apply database migrations:
python manage.py migrateCreate a .env file in the project root with the following variables:
CLIENT_ID=your_client_id
REDIRECT_URI=http://localhost:3000/callback/
AUTHORIZATION_ENDPOINT=your_authorization_endpoint
TOKEN_ENDPOINT=your_token_endpoint
USERINFO_ENDPOINT=your_userinfo_endpoint
PRIVATE_KEY=your_private_key
ALGORITHM=RS256
CLIENT_ASSERTION_TYPE=urn:ietf:params:oauth:client-assertion-type:jwt-bearerpython manage.py runserver 3000The application will be available at http://localhost:3000
- Default Port: 3000
- Callback URL:
http://localhost:3000/callback/ - Redirect URI: Must match the REDIRECT_URI in your .env file
If you need to change the port, update the REDIRECT_URI in your .env file accordingly.
Open your web browser and navigate to http://localhost:3000
- Click "Sign in with Fayda" on the home page
- You will be redirected to the Fayda authentication system
- Complete the authentication process
- You will be redirected back to the application with your verified identity
- Access the banking dashboard with your authenticated session
Once authenticated, you can access:
- Dashboard: Overview of all banking features
- Profile Management: Update personal information and KYC details
- Account Verification: Check verification status
- Loan Eligibility: Check loan options and eligibility
- Account Balance: View account balances
- Transactions: Review transaction history
- Exchange Rates: View currency exchange rates
Click the "Logout" button in the header to end your session and return to the home page.
oidc_project/
├── oidc_app/
│ ├── templates/oidc_app/
│ │ ├── home.html
│ │ ├── callback.html
│ │ ├── dashboard.html
│ │ ├── profile.html
│ │ ├── account_verification.html
│ │ ├── loan_eligibility.html
│ │ ├── account_balance.html
│ │ ├── transactions.html
│ │ └── exchange_rates.html
│ ├── views.py
│ ├── urls.py
│ └── models.py
├── oidc_project/
│ ├── settings.py
│ └── urls.py
├── manage.py
└── requirements.txt
- Framework: Django 5.1
- Authentication: OIDC with Fayda
- Database: SQLite (development)
- Session Management: Django sessions
- Frontend: HTML5, CSS3, JavaScript
- Icons: Font Awesome 6.0
-
Port Already in Use:
- Change the port:
python manage.py runserver 8000 - Update REDIRECT_URI in .env file accordingly
- Change the port:
-
Database Errors:
- Run migrations:
python manage.py migrate
- Run migrations:
-
Environment Variables:
- Ensure all required variables are set in .env file
- Check that REDIRECT_URI matches your server configuration
-
Authentication Issues:
- Verify Fayda endpoints are accessible
- Check client credentials and private key format
- This application uses session-based authentication
- User data is stored in Django sessions
- All OIDC communications are secured with JWT tokens
- Private keys should be kept secure and not committed to version control
For technical support or questions about the application, please refer to the Django documentation or contact the development team.