S-Dreamer commited on
Commit
6dd39e6
·
verified ·
1 Parent(s): df8dd1c

undefined - Initial Deployment

Browse files
Files changed (2) hide show
  1. README.md +7 -5
  2. index.html +391 -19
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Indiecoder
3
- emoji: 👀
4
- colorFrom: green
5
- colorTo: gray
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: indiecoder
3
+ emoji: 🐳
4
+ colorFrom: blue
5
+ colorTo: pink
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite
10
  ---
11
 
12
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
index.html CHANGED
@@ -1,19 +1,391 @@
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>IndieCoder | Privacy-First Coding Platform</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
9
+ <style>
10
+ .editor-container {
11
+ height: calc(100vh - 160px);
12
+ }
13
+ .sidebar {
14
+ transition: all 0.3s ease;
15
+ }
16
+ .sidebar-collapsed {
17
+ transform: translateX(-90%);
18
+ }
19
+ .tab-active {
20
+ border-bottom: 2px solid #3b82f6;
21
+ color: #3b82f6;
22
+ }
23
+ .terminal {
24
+ height: 200px;
25
+ overflow-y: auto;
26
+ }
27
+ .monaco-editor {
28
+ height: 100%;
29
+ }
30
+ .dropdown:hover .dropdown-menu {
31
+ display: block;
32
+ }
33
+ .animate-pulse {
34
+ animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
35
+ }
36
+ @keyframes pulse {
37
+ 0%, 100% {
38
+ opacity: 1;
39
+ }
40
+ 50% {
41
+ opacity: 0.5;
42
+ }
43
+ }
44
+ </style>
45
+ </head>
46
+ <body class="bg-gray-100 text-gray-900 font-sans">
47
+ <!-- Navigation -->
48
+ <nav class="bg-white shadow-sm">
49
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
50
+ <div class="flex justify-between h-16">
51
+ <div class="flex items-center">
52
+ <div class="flex-shrink-0 flex items-center">
53
+ <i class="fas fa-code text-indigo-600 text-2xl mr-2"></i>
54
+ <span class="text-xl font-bold text-indigo-600">IndieCoder</span>
55
+ </div>
56
+ <div class="hidden sm:ml-6 sm:flex sm:space-x-8">
57
+ <a href="#" class="border-indigo-500 text-gray-900 inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium">
58
+ Editor
59
+ </a>
60
+ <a href="#" class="border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700 inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium">
61
+ Projects
62
+ </a>
63
+ <a href="#" class="border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700 inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium">
64
+ Community
65
+ </a>
66
+ </div>
67
+ </div>
68
+ <div class="hidden sm:ml-6 sm:flex sm:items-center">
69
+ <div class="ml-3 relative">
70
+ <div class="dropdown relative">
71
+ <button class="flex text-sm rounded-full focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500">
72
+ <span class="sr-only">Open user menu</span>
73
+ <div class="h-8 w-8 rounded-full bg-indigo-600 flex items-center justify-center text-white">
74
+ <span>ID</span>
75
+ </div>
76
+ </button>
77
+ <div class="dropdown-menu hidden absolute right-0 mt-2 w-48 rounded-md shadow-lg py-1 bg-white ring-1 ring-black ring-opacity-5 focus:outline-none z-10">
78
+ <a href="#" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100">Your Profile</a>
79
+ <a href="#" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100">Settings</a>
80
+ <a href="#" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100">Sign out</a>
81
+ </div>
82
+ </div>
83
+ </div>
84
+ </div>
85
+ <div class="-mr-2 flex items-center sm:hidden">
86
+ <button type="button" class="inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-inset focus:ring-indigo-500">
87
+ <span class="sr-only">Open main menu</span>
88
+ <i class="fas fa-bars"></i>
89
+ </button>
90
+ </div>
91
+ </div>
92
+ </div>
93
+ </nav>
94
+
95
+ <!-- Main Content -->
96
+ <div class="flex h-full">
97
+ <!-- Sidebar -->
98
+ <div class="sidebar bg-gray-800 text-white w-64 flex-shrink-0">
99
+ <div class="p-4">
100
+ <div class="flex items-center justify-between mb-6">
101
+ <h2 class="text-xl font-semibold">Project Files</h2>
102
+ <button class="text-gray-400 hover:text-white">
103
+ <i class="fas fa-plus"></i>
104
+ </button>
105
+ </div>
106
+ <div class="space-y-2">
107
+ <div class="flex items-center px-2 py-1 bg-gray-700 rounded">
108
+ <i class="fas fa-folder text-yellow-400 mr-2"></i>
109
+ <span>src</span>
110
+ </div>
111
+ <div class="ml-4 space-y-1">
112
+ <div class="flex items-center px-2 py-1 hover:bg-gray-700 rounded">
113
+ <i class="fas fa-file-code text-blue-400 mr-2"></i>
114
+ <span>main.py</span>
115
+ </div>
116
+ <div class="flex items-center px-2 py-1 hover:bg-gray-700 rounded">
117
+ <i class="fas fa-file-code text-blue-400 mr-2"></i>
118
+ <span>utils.py</span>
119
+ </div>
120
+ </div>
121
+ <div class="flex items-center px-2 py-1 hover:bg-gray-700 rounded">
122
+ <i class="fas fa-file-code text-blue-400 mr-2"></i>
123
+ <span>requirements.txt</span>
124
+ </div>
125
+ <div class="flex items-center px-2 py-1 hover:bg-gray-700 rounded">
126
+ <i class="fas fa-file-alt text-green-400 mr-2"></i>
127
+ <span>README.md</span>
128
+ </div>
129
+ <div class="flex items-center px-2 py-1 hover:bg-gray-700 rounded">
130
+ <i class="fas fa-cog text-gray-400 mr-2"></i>
131
+ <span>config.json</span>
132
+ </div>
133
+ </div>
134
+ </div>
135
+ <div class="p-4 border-t border-gray-700">
136
+ <h3 class="text-sm font-semibold mb-2">Database</h3>
137
+ <div class="flex items-center px-2 py-1 hover:bg-gray-700 rounded">
138
+ <i class="fas fa-database text-purple-400 mr-2"></i>
139
+ <span>local.db</span>
140
+ </div>
141
+ </div>
142
+ <div class="p-4 border-t border-gray-700">
143
+ <h3 class="text-sm font-semibold mb-2">Docker</h3>
144
+ <div class="flex items-center px-2 py-1 hover:bg-gray-700 rounded">
145
+ <i class="fab fa-docker text-blue-400 mr-2"></i>
146
+ <span>Dockerfile</span>
147
+ </div>
148
+ <div class="flex items-center px-2 py-1 hover:bg-gray-700 rounded">
149
+ <i class="fas fa-file-code text-blue-400 mr-2"></i>
150
+ <span>docker-compose.yml</span>
151
+ </div>
152
+ </div>
153
+ </div>
154
+
155
+ <!-- Main Editor Area -->
156
+ <div class="flex-1 flex flex-col overflow-hidden">
157
+ <!-- Editor Tabs -->
158
+ <div class="bg-white border-b border-gray-200">
159
+ <div class="flex">
160
+ <div class="flex-1 flex overflow-x-auto">
161
+ <div class="flex">
162
+ <div class="tab-active px-4 py-2 text-sm font-medium">
163
+ main.py
164
+ </div>
165
+ <div class="px-4 py-2 text-sm font-medium text-gray-500 hover:text-gray-700">
166
+ utils.py
167
+ </div>
168
+ <div class="px-4 py-2 text-sm font-medium text-gray-500 hover:text-gray-700">
169
+ README.md
170
+ </div>
171
+ </div>
172
+ </div>
173
+ <div class="flex items-center px-4">
174
+ <button class="text-gray-400 hover:text-gray-500 mr-3">
175
+ <i class="fas fa-save"></i>
176
+ </button>
177
+ <button class="text-gray-400 hover:text-gray-500">
178
+ <i class="fas fa-ellipsis-v"></i>
179
+ </button>
180
+ </div>
181
+ </div>
182
+ </div>
183
+
184
+ <!-- Editor Content -->
185
+ <div class="editor-container flex-1 overflow-auto bg-white">
186
+ <div class="h-full">
187
+ <div class="monaco-editor">
188
+ <div class="bg-gray-50 p-4">
189
+ <pre class="text-gray-800 font-mono text-sm">
190
+ <span class="text-purple-600">from</span> flask <span class="text-purple-600">import</span> Flask, render_template, request
191
+ <span class="text-purple-600">from</span> flask_sqlalchemy <span class="text-purple-600">import</span> SQLAlchemy
192
+ <span class="text-purple-600">import</span> os
193
+
194
+ <span class="text-gray-500"># Initialize the Flask application</span>
195
+ app = Flask(__name__)
196
+
197
+ <span class="text-gray-500"># Configure database</span>
198
+ app.config[<span class="text-green-600">'SQLALCHEMY_DATABASE_URI'</span>] = <span class="text-green-600">'sqlite:///local.db'</span>
199
+ app.config[<span class="text-green-600">'SQLALCHEMY_TRACK_MODIFICATIONS'</span>] = <span class="text-purple-600">False</span>
200
+ db = SQLAlchemy(app)
201
+
202
+ <span class="text-gray-500"># Define a simple User model</span>
203
+ <span class="text-purple-600">class</span> <span class="text-blue-600">User</span>(db.Model):
204
+ id = db.Column(db.Integer, primary_key=<span class="text-purple-600">True</span>)
205
+ username = db.Column(db.String(<span class="text-yellow-600">80</span>), unique=<span class="text-purple-600">True</span>, nullable=<span class="text-purple-600">False</span>)
206
+ email = db.Column(db.String(<span class="text-yellow-600">120</span>), unique=<span class="text-purple-600">True</span>, nullable=<span class="text-purple-600">False</span>)
207
+
208
+ <span class="text-purple-600">def</span> <span class="text-blue-600">__repr__</span>(<span class="text-blue-600">self</span>):
209
+ <span class="text-purple-600">return</span> f<span class="text-green-600">'&lt;User {self.username}&gt;'</span>
210
+
211
+ <span class="text-gray-500"># Create database tables</span>
212
+ <span class="text-purple-600">with</span> app.app_context():
213
+ db.create_all()
214
+
215
+ <span class="text-gray-500"># Main route</span>
216
+ <span class="text-purple-600">@app</span>.route(<span class="text-green-600">'/'</span>)
217
+ <span class="text-purple-600">def</span> <span class="text-blue-600">index</span>():
218
+ <span class="text-purple-600">return</span> render_template(<span class="text-green-600">'index.html'</span>)
219
+
220
+ <span class="text-gray-500"># Run the application</span>
221
+ <span class="text-purple-600">if</span> __name__ == <span class="text-green-600">'__main__'</span>:
222
+ app.run(debug=<span class="text-purple-600">True</span>)</pre>
223
+ </div>
224
+ </div>
225
+ </div>
226
+ </div>
227
+
228
+ <!-- Terminal -->
229
+ <div class="bg-gray-800 text-white terminal">
230
+ <div class="flex items-center px-4 py-2 border-b border-gray-700">
231
+ <div class="flex space-x-2">
232
+ <div class="w-3 h-3 rounded-full bg-red-500"></div>
233
+ <div class="w-3 h-3 rounded-full bg-yellow-500"></div>
234
+ <div class="w-3 h-3 rounded-full bg-green-500"></div>
235
+ </div>
236
+ <div class="ml-4 text-sm font-medium">Terminal</div>
237
+ </div>
238
+ <div class="p-3 font-mono text-sm">
239
+ <div class="text-green-400">$ python main.py</div>
240
+ <div class="text-gray-400">* Serving Flask app 'main'</div>
241
+ <div class="text-gray-400">* Debug mode: on</div>
242
+ <div class="text-gray-400">WARNING: This is a development server. Do not use it in a production deployment.</div>
243
+ <div class="text-gray-400">* Running on http://127.0.0.1:5000</div>
244
+ <div class="text-gray-400">Press CTRL+C to quit</div>
245
+ <div class="text-green-400">$</div>
246
+ <div class="animate-pulse">|</div>
247
+ </div>
248
+ </div>
249
+ </div>
250
+ </div>
251
+
252
+ <!-- Bottom Status Bar -->
253
+ <div class="bg-gray-800 text-gray-300 text-xs px-4 py-1 flex justify-between">
254
+ <div class="flex items-center space-x-4">
255
+ <div class="flex items-center">
256
+ <i class="fas fa-code-branch text-gray-500 mr-1"></i>
257
+ <span>main</span>
258
+ </div>
259
+ <div class="flex items-center">
260
+ <i class="fas fa-shield-alt text-green-500 mr-1"></i>
261
+ <span>Privacy Mode</span>
262
+ </div>
263
+ <div class="flex items-center">
264
+ <i class="fab fa-docker text-blue-400 mr-1"></i>
265
+ <span>Docker Ready</span>
266
+ </div>
267
+ </div>
268
+ <div class="flex items-center space-x-4">
269
+ <div class="flex items-center">
270
+ <i class="fas fa-memory text-yellow-500 mr-1"></i>
271
+ <span>256MB / 2GB</span>
272
+ </div>
273
+ <div class="flex items-center">
274
+ <i class="fas fa-microchip text-purple-400 mr-1"></i>
275
+ <span>CPU: 12%</span>
276
+ </div>
277
+ <div class="flex items-center">
278
+ <i class="fas fa-circle text-green-500 mr-1"></i>
279
+ <span>Localhost</span>
280
+ </div>
281
+ </div>
282
+ </div>
283
+
284
+ <!-- Mobile Menu (hidden by default) -->
285
+ <div class="hidden sm:hidden" id="mobile-menu">
286
+ <div class="pt-2 pb-3 space-y-1">
287
+ <a href="#" class="bg-indigo-50 border-indigo-500 text-indigo-700 block pl-3 pr-4 py-2 border-l-4 text-base font-medium">Editor</a>
288
+ <a href="#" class="border-transparent text-gray-500 hover:bg-gray-50 hover:border-gray-300 hover:text-gray-700 block pl-3 pr-4 py-2 border-l-4 text-base font-medium">Projects</a>
289
+ <a href="#" class="border-transparent text-gray-500 hover:bg-gray-50 hover:border-gray-300 hover:text-gray-700 block pl-3 pr-4 py-2 border-l-4 text-base font-medium">Community</a>
290
+ </div>
291
+ </div>
292
+
293
+ <!-- Welcome Modal -->
294
+ <div class="fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50">
295
+ <div class="bg-white rounded-lg shadow-xl max-w-2xl w-full">
296
+ <div class="p-6">
297
+ <div class="flex justify-between items-start">
298
+ <div>
299
+ <h2 class="text-2xl font-bold text-indigo-600 mb-2">Welcome to IndieCoder</h2>
300
+ <p class="text-gray-600 mb-4">Your privacy-first, self-hostable coding platform</p>
301
+ </div>
302
+ <button class="text-gray-400 hover:text-gray-500">
303
+ <i class="fas fa-times"></i>
304
+ </button>
305
+ </div>
306
+
307
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-4 mb-6">
308
+ <div class="bg-gray-50 p-4 rounded-lg">
309
+ <div class="text-indigo-600 mb-2">
310
+ <i class="fas fa-lock text-2xl"></i>
311
+ </div>
312
+ <h3 class="font-semibold mb-1">Privacy First</h3>
313
+ <p class="text-sm text-gray-600">Your code never leaves your infrastructure. No telemetry, no tracking.</p>
314
+ </div>
315
+ <div class="bg-gray-50 p-4 rounded-lg">
316
+ <div class="text-indigo-600 mb-2">
317
+ <i class="fas fa-server text-2xl"></i>
318
+ </div>
319
+ <h3 class="font-semibold mb-1">Self-Hostable</h3>
320
+ <p class="text-sm text-gray-600">Run on your own server with Docker. Full control over your environment.</p>
321
+ </div>
322
+ <div class="bg-gray-50 p-4 rounded-lg">
323
+ <div class="text-indigo-600 mb-2">
324
+ <i class="fas fa-code text-2xl"></i>
325
+ </div>
326
+ <h3 class="font-semibold mb-1">Full Stack</h3>
327
+ <p class="text-sm text-gray-600">Flask backend, React frontend, SQLite/Postgres support out of the box.</p>
328
+ </div>
329
+ </div>
330
+
331
+ <div class="bg-blue-50 p-4 rounded-lg mb-4">
332
+ <h3 class="font-semibold text-blue-800 mb-2">Quick Start</h3>
333
+ <div class="bg-gray-800 text-white p-3 rounded font-mono text-sm overflow-x-auto">
334
+ <div class="text-green-400"># Clone the repository</div>
335
+ <div class="mb-2">git clone https://github.com/indiecoder/indiecoder.git</div>
336
+
337
+ <div class="text-green-400"># Start with Docker</div>
338
+ <div>cd indiecoder</div>
339
+ <div>docker-compose up</div>
340
+ </div>
341
+ </div>
342
+
343
+ <div class="flex justify-end">
344
+ <button class="bg-indigo-600 text-white px-4 py-2 rounded-md hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2">
345
+ Get Started
346
+ </button>
347
+ </div>
348
+ </div>
349
+ </div>
350
+ </div>
351
+
352
+ <script>
353
+ // Toggle mobile menu
354
+ document.querySelector('button[aria-controls="mobile-menu"]').addEventListener('click', function() {
355
+ document.getElementById('mobile-menu').classList.toggle('hidden');
356
+ });
357
+
358
+ // Toggle sidebar
359
+ document.querySelector('.sidebar-toggle').addEventListener('click', function() {
360
+ document.querySelector('.sidebar').classList.toggle('sidebar-collapsed');
361
+ });
362
+
363
+ // Close welcome modal
364
+ document.querySelector('.modal-close').addEventListener('click', function() {
365
+ document.querySelector('.modal').classList.add('hidden');
366
+ });
367
+
368
+ // File tree navigation
369
+ document.querySelectorAll('.file-tree-item').forEach(item => {
370
+ item.addEventListener('click', function() {
371
+ // In a real app, this would load the file content
372
+ console.log('Opening file:', this.textContent.trim());
373
+ });
374
+ });
375
+
376
+ // Terminal input simulation
377
+ const terminalInput = document.querySelector('.terminal-input');
378
+ if (terminalInput) {
379
+ terminalInput.addEventListener('keydown', function(e) {
380
+ if (e.key === 'Enter') {
381
+ e.preventDefault();
382
+ // Process command here
383
+ const command = this.textContent.trim();
384
+ console.log('Command executed:', command);
385
+ this.textContent = '$ ';
386
+ }
387
+ });
388
+ }
389
+ </script>
390
+ <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=S-Dreamer/indiecoder" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
391
+ </html>