Cbteam commited on
Commit
2b07e23
·
verified ·
1 Parent(s): 83199db

Interbanco receipt generator

Browse files
Files changed (2) hide show
  1. README.md +8 -5
  2. index.html +280 -18
README.md CHANGED
@@ -1,10 +1,13 @@
1
  ---
2
- title: Bankslip Bot
3
- emoji: 🌍
4
- colorFrom: red
5
- colorTo: green
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
1
  ---
2
+ title: BankSlip Bot 🏦
3
+ colorFrom: purple
4
+ colorTo: purple
5
+ emoji: 🐳
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite-v3
10
  ---
11
 
12
+ # Welcome to your new DeepSite project!
13
+ This project was created with [DeepSite](https://deepsite.hf.co).
index.html CHANGED
@@ -1,19 +1,281 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  </html>
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>BankSlip Bot - Receipt Generator</title>
7
+ <link rel="icon" type="image/x-icon" href="/static/favicon.ico">
8
+ <script src="https://cdn.tailwindcss.com"></script>
9
+ <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
10
+ <script src="https://unpkg.com/feather-icons"></script>
11
+ <script>
12
+ tailwind.config = {
13
+ theme: {
14
+ extend: {
15
+ colors: {
16
+ primary: '#2563eb',
17
+ secondary: '#7c3aed',
18
+ }
19
+ }
20
+ }
21
+ }
22
+ </script>
23
+ <style>
24
+ .receipt-paper {
25
+ background-image: linear-gradient(to bottom, #f9f9f9 1px, transparent 1px);
26
+ background-size: 100% 24px;
27
+ box-shadow: 0 4px 20px rgba(0,0,0,0.08);
28
+ }
29
+ .perforation {
30
+ background: repeating-linear-gradient(180deg, #e5e7eb, #e5e7eb 10px, transparent 10px, transparent 20px);
31
+ }
32
+ .bank-logo {
33
+ filter: grayscale(100%) brightness(0.5);
34
+ }
35
+ .watermark {
36
+ opacity: 0.05;
37
+ pointer-events: none;
38
+ }
39
+ </style>
40
+ </head>
41
+ <body class="bg-gray-50 min-h-screen">
42
+ <div class="container mx-auto py-12 px-4">
43
+ <!-- Header -->
44
+ <header class="flex flex-col items-center mb-8">
45
+ <h1 class="text-3xl font-bold text-primary mb-2">BankSlip Bot</h1>
46
+ <p class="text-gray-600">Generate professional interbank receipts</p>
47
+ </header>
48
+
49
+ <!-- Main Content -->
50
+ <main class="flex flex-col lg:flex-row gap-8">
51
+ <!-- Form Section -->
52
+ <div class="w-full lg:w-1/2 bg-white rounded-xl shadow-md p-6">
53
+ <h2 class="text-xl font-semibold text-gray-800 mb-6">Receipt Details</h2>
54
+
55
+ <form id="receiptForm" class="space-y-4">
56
+ <!-- Payer Section -->
57
+ <div>
58
+ <h3 class="text-md font-medium text-gray-700 mb-2 flex items-center">
59
+ <i data-feather="user" class="w-4 h-4 mr-2"></i> Payer Information
60
+ </h3>
61
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-4">
62
+ <div>
63
+ <label class="block text-sm font-medium text-gray-700 mb-1">Full Name</label>
64
+ <input type="text" id="payerName" required
65
+ class="w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent">
66
+ </div>
67
+ <div>
68
+ <label class="block text-sm font-medium text-gray-700 mb-1">ID Number</label>
69
+ <input type="text" id="payerId" required
70
+ class="w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent">
71
+ </div>
72
+ </div>
73
+ </div>
74
+
75
+ <!-- Payment Section -->
76
+ <div>
77
+ <h3 class="text-md font-medium text-gray-700 mb-2 flex items-center">
78
+ <i data-feather="dollar-sign" class="w-4 h-4 mr-2"></i> Payment Details
79
+ </h3>
80
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-4">
81
+ <div>
82
+ <label class="block text-sm font-medium text-gray-700 mb-1">Amount</label>
83
+ <input type="number" id="amount" step="0.01" required
84
+ class="w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent">
85
+ </div>
86
+ <div>
87
+ <label class="block text-sm font-medium text-gray-700 mb-1">Currency</label>
88
+ <select id="currency" required
89
+ class="w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent">
90
+ <option value="USD">USD</option>
91
+ <option value="EUR">EUR</option>
92
+ <option value="GBP">GBP</option>
93
+ <option value="JPY">JPY</option>
94
+ </select>
95
+ </div>
96
+ </div>
97
+ <div class="mt-4">
98
+ <label class="block text-sm font-medium text-gray-700 mb-1">Payment Reference</label>
99
+ <input type="text" id="reference" required
100
+ class="w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent">
101
+ </div>
102
+ </div>
103
+
104
+ <!-- Bank Details -->
105
+ <div>
106
+ <h3 class="text-md font-medium text-gray-700 mb-2 flex items-center">
107
+ <i data-feather="bank" class="w-4 h-4 mr-2"></i> Bank Information
108
+ </h3>
109
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-4">
110
+ <div>
111
+ <label class="block text-sm font-medium text-gray-700 mb-1">Bank Name</label>
112
+ <input type="text" id="bankName" required
113
+ class="w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent">
114
+ </div>
115
+ <div>
116
+ <label class="block text-sm font-medium text-gray-700 mb-1">Account Number</label>
117
+ <input type="text" id="accountNumber" required
118
+ class="w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent">
119
+ </div>
120
+ </div>
121
+ <div class="mt-4">
122
+ <label class="block text-sm font-medium text-gray-700 mb-1">SWIFT/BIC Code</label>
123
+ <input type="text" id="swiftCode" required
124
+ class="w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent">
125
+ </div>
126
+ </div>
127
+
128
+ <!-- Submission -->
129
+ <div class="pt-4">
130
+ <button type="submit" class="w-full bg-primary hover:bg-blue-700 text-white font-medium py-2 px-4 rounded-md transition duration-300">
131
+ Generate Receipt
132
+ </button>
133
+ </div>
134
+ </form>
135
+ </div>
136
+
137
+ <!-- Preview Section -->
138
+ <div class="w-full lg:w-1/2 flex flex-col">
139
+ <div class="bg-white rounded-xl shadow-md overflow-hidden mb-4">
140
+ <div class="perforation h-6 w-full"></div>
141
+ <div id="receiptPreview" class="receipt-paper p-8 relative">
142
+ <div class="watermark absolute inset-0 flex items-center justify-center font-bold text-6xl text-gray-300 -rotate-45">
143
+ BankSlip Bot
144
+ </div>
145
+
146
+ <div class="relative z-10">
147
+ <!-- Header -->
148
+ <div class="flex justify-between items-start mb-8">
149
+ <div>
150
+ <h2 class="text-2xl font-bold text-primary">INTERBANK RECEIPT</h2>
151
+ <p class="text-gray-500 text-sm">Transaction #<span id="previewReference">REF-12345</span></p>
152
+ </div>
153
+ <div class="text-right">
154
+ <p class="text-gray-600 text-sm">Date: <span id="previewDate">DD/MM/YYYY</span></p>
155
+ <p class="text-gray-600 text-sm">Time: <span id="previewTime">HH:MM</span></p>
156
+ </div>
157
+ </div>
158
+
159
+ <!-- Bank Info -->
160
+ <div class="flex items-center mb-8">
161
+ <div class="mr-4">
162
+ <div class="bank-logo bg-gray-200 w-16 h-16 rounded flex items-center justify-center">
163
+ <i data-feather="bank" class="w-8 h-8"></i>
164
+ </div>
165
+ </div>
166
+ <div>
167
+ <h3 class="font-bold text-lg" id="previewBank">Bank Name</h3>
168
+ <p class="text-gray-600 text-sm" id="previewAccount">Account: •••• •••• •••• 1234</p>
169
+ <p class="text-gray-600 text-sm" id="previewSwift">SWIFT: XXXXXXXX</p>
170
+ </div>
171
+ </div>
172
+
173
+ <!-- Payer Info -->
174
+ <div class="mb-8">
175
+ <h4 class="text-sm font-semibold text-gray-500 uppercase tracking-wider mb-2">Payer Information</h4>
176
+ <p class="font-medium" id="previewPayer">John Doe</p>
177
+ <p class="text-gray-600 text-sm" id="previewPayerId">ID: 1234567890</p>
178
+ </div>
179
+
180
+ <!-- Payment Details -->
181
+ <div class="mb-8">
182
+ <h4 class="text-sm font-semibold text-gray-500 uppercase tracking-wider mb-2">Payment Details</h4>
183
+ <div class="flex justify-between py-2 border-b border-gray-200">
184
+ <span class="text-gray-600">Amount:</span>
185
+ <span class="font-bold" id="previewAmount">$1,000.00</span>
186
+ </div>
187
+ <div class="flex justify-between py-2 border-b border-gray-200">
188
+ <span class="text-gray-600">Currency:</span>
189
+ <span class="font-medium" id="previewCurrency">USD</span>
190
+ </div>
191
+ </div>
192
+
193
+ <!-- Authorization -->
194
+ <div class="mt-12 pt-4 border-t border-gray-200">
195
+ <div class="flex justify-between items-center">
196
+ <div class="text-sm text-gray-500">
197
+ <p>Authorized by:</p>
198
+ <p class="font-medium mt-2">BankSlip Bot System</p>
199
+ </div>
200
+ <div class="flex items-center">
201
+ <div class="mr-2 h-8 w-8 bg-gray-200 rounded-full flex items-center justify-center">
202
+ <i data-feather="check" class="w-4 h-4 text-green-500"></i>
203
+ </div>
204
+ <span class="text-sm text-gray-600">Verified</span>
205
+ </div>
206
+ </div>
207
+ </div>
208
+ </div>
209
+ </div>
210
+ <div class="perforation h-6 w-full"></div>
211
+ </div>
212
+
213
+ <!-- Actions -->
214
+ <div class="flex gap-4">
215
+ <button id="downloadBtn" class="flex-1 bg-white border border-gray-300 hover:bg-gray-50 text-gray-700 font-medium py-2 px-4 rounded-md transition duration-300 flex items-center justify-center gap-2 opacity-50 cursor-not-allowed" disabled>
216
+ <i data-feather="download" class="w-4 h-4"></i>
217
+ Download PDF
218
+ </button>
219
+ <button id="printBtn" class="flex-1 bg-white border border-gray-300 hover:bg-gray-50 text-gray-700 font-medium py-2 px-4 rounded-md transition duration-300 flex items-center justify-center gap-2">
220
+ <i data-feather="printer" class="w-4 h-4"></i>
221
+ Print
222
+ </button>
223
+ </div>
224
+ </div>
225
+ </main>
226
+ </div>
227
+
228
+ <script>
229
+ document.addEventListener('DOMContentLoaded', function() {
230
+ feather.replace();
231
+
232
+ // Set current date and time
233
+ const now = new Date();
234
+ document.getElementById('previewDate').textContent = now.toLocaleDateString();
235
+ document.getElementById('previewTime').textContent = now.toLocaleTimeString([], {hour: '2-digit', minute:'2-digit'});
236
+
237
+ // Form submission
238
+ document.getElementById('receiptForm').addEventListener('submit', function(e) {
239
+ e.preventDefault();
240
+
241
+ // Get form values
242
+ const payerName = document.getElementById('payerName').value;
243
+ const payerId = document.getElementById('payerId').value;
244
+ const amount = parseFloat(document.getElementById('amount').value).toFixed(2);
245
+ const currency = document.getElementById('currency').value;
246
+ const reference = document.getElementById('reference').value;
247
+ const bankName = document.getElementById('bankName').value;
248
+ const accountNumber = document.getElementById('accountNumber').value;
249
+ const swiftCode = document.getElementById('swiftCode').value;
250
+
251
+ // Update preview
252
+ document.getElementById('previewPayer').textContent = payerName;
253
+ document.getElementById('previewPayerId').textContent = `ID: ${payerId}`;
254
+ document.getElementById('previewAmount').textContent = `${currency} ${amount}`;
255
+ document.getElementById('previewCurrency').textContent = currency;
256
+ document.getElementById('previewReference').textContent = reference;
257
+ document.getElementById('previewBank').textContent = bankName;
258
+ document.getElementById('previewAccount').textContent = `Account: •••• •••• •••• ${accountNumber.slice(-4)}`;
259
+ document.getElementById('previewSwift').textContent = `SWIFT: ${swiftCode}`;
260
+
261
+ // Enable download button
262
+ document.getElementById('downloadBtn').disabled = false;
263
+ document.getElementById('downloadBtn').classList.remove('opacity-50', 'cursor-not-allowed');
264
+
265
+ // Scroll to preview
266
+ document.getElementById('receiptPreview').scrollIntoView({ behavior: 'smooth' });
267
+ });
268
+
269
+ // Print button
270
+ document.getElementById('printBtn').addEventListener('click', function() {
271
+ window.print();
272
+ });
273
+
274
+ // Download button (placeholder functionality)
275
+ document.getElementById('downloadBtn').addEventListener('click', function() {
276
+ alert('PDF generation would be implemented in a production environment');
277
+ });
278
+ });
279
+ </script>
280
+ </body>
281
  </html>