├── Frontend ├── public │ ├── robots.txt │ └── favicon.ico ├── src │ ├── samples │ │ ├── index.html │ │ ├── style.css │ │ ├── rust.rs │ │ ├── script.js │ │ ├── kotlin.kt │ │ ├── javascript.js │ │ ├── ruby.rb │ │ ├── scala.scala │ │ ├── typescript.ts │ │ ├── go.go │ │ ├── julia.jl │ │ ├── verilog.v │ │ ├── swift.swift │ │ ├── mongodb.js │ │ ├── cpp.cpp │ │ ├── dart.dart │ │ ├── perl.pl │ │ ├── bash.sh │ │ ├── java.java │ │ ├── python.py │ │ ├── c.c │ │ ├── csharp.cs │ │ └── sql.sql │ ├── main.jsx │ ├── index.css │ ├── components │ │ ├── Footer.jsx │ │ ├── MainBody.jsx │ │ ├── NavigationLinks.jsx │ │ ├── Header.jsx │ │ ├── ShareEditor.jsx │ │ └── SharedLinks.jsx │ ├── App.jsx │ ├── utils │ │ ├── constants.js │ │ ├── InputField.jsx │ │ ├── blocker.js │ │ ├── ShareLinkModal.js │ │ └── OtpInputForm.jsx │ ├── context │ │ └── ThemeProvider.jsx │ ├── pages │ │ ├── NotFound.jsx │ │ ├── Login.jsx │ │ ├── Register.jsx │ │ ├── ForgotPassword.jsx │ │ └── Accounts.jsx │ └── routes │ │ └── EditorRoutes.jsx ├── index.html ├── vite.config.js ├── eslint.config.js ├── package.json └── .gitignore ├── Backend ├── TempFile │ ├── requirements.txt │ ├── templates │ │ └── index.html │ └── app.py ├── Genai │ ├── requirements.txt │ ├── templates │ │ └── index.html │ └── app.py └── Login │ ├── utils │ ├── otpGenerator.js │ ├── useLogger.js │ ├── updateLanguageCount.js │ └── validation.js │ ├── config │ ├── corsOptions.js │ └── db.js │ ├── templates │ └── index.html │ ├── smtp │ ├── transporter.js │ ├── delEmail.js │ └── sendMail.js │ ├── middlewares │ └── cleanExpired.js │ ├── package.json │ └── models │ ├── Log.js │ └── User.js ├── Images ├── C.png ├── Go.png ├── Dart.png ├── Java.png ├── Julia.png ├── Login.png ├── Perl.png ├── Ruby.png ├── Rust.png ├── Scala.png ├── Sql.png ├── Swift.png ├── CSharp.png ├── Diagram.png ├── Kotlin.png ├── MongoDB.png ├── Python.png ├── Verilog.png ├── Accounts.png ├── Cplusplus.png ├── Homepage.png ├── HtmlCssJs.png ├── Javascript.png ├── Register.png └── Typescript.png ├── LICENSE ├── .gitignore └── README.md /Frontend/public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: -------------------------------------------------------------------------------- /Backend/TempFile/requirements.txt: -------------------------------------------------------------------------------- 1 | Flask 2 | flask-cors 3 | redis 4 | python-dotenv 5 | pyjwt -------------------------------------------------------------------------------- /Frontend/src/samples/index.html: -------------------------------------------------------------------------------- 1 |
This is a paragraph.
-------------------------------------------------------------------------------- /Images/C.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nightingale-evening/online-ide/HEAD/Images/C.png -------------------------------------------------------------------------------- /Images/Go.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nightingale-evening/online-ide/HEAD/Images/Go.png -------------------------------------------------------------------------------- /Backend/Genai/requirements.txt: -------------------------------------------------------------------------------- 1 | google-genai 2 | python-dotenv 3 | flask-cors 4 | flask 5 | pyjwt -------------------------------------------------------------------------------- /Images/Dart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nightingale-evening/online-ide/HEAD/Images/Dart.png -------------------------------------------------------------------------------- /Images/Java.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nightingale-evening/online-ide/HEAD/Images/Java.png -------------------------------------------------------------------------------- /Images/Julia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nightingale-evening/online-ide/HEAD/Images/Julia.png -------------------------------------------------------------------------------- /Images/Login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nightingale-evening/online-ide/HEAD/Images/Login.png -------------------------------------------------------------------------------- /Images/Perl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nightingale-evening/online-ide/HEAD/Images/Perl.png -------------------------------------------------------------------------------- /Images/Ruby.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nightingale-evening/online-ide/HEAD/Images/Ruby.png -------------------------------------------------------------------------------- /Images/Rust.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nightingale-evening/online-ide/HEAD/Images/Rust.png -------------------------------------------------------------------------------- /Images/Scala.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nightingale-evening/online-ide/HEAD/Images/Scala.png -------------------------------------------------------------------------------- /Images/Sql.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nightingale-evening/online-ide/HEAD/Images/Sql.png -------------------------------------------------------------------------------- /Images/Swift.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nightingale-evening/online-ide/HEAD/Images/Swift.png -------------------------------------------------------------------------------- /Images/CSharp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nightingale-evening/online-ide/HEAD/Images/CSharp.png -------------------------------------------------------------------------------- /Images/Diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nightingale-evening/online-ide/HEAD/Images/Diagram.png -------------------------------------------------------------------------------- /Images/Kotlin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nightingale-evening/online-ide/HEAD/Images/Kotlin.png -------------------------------------------------------------------------------- /Images/MongoDB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nightingale-evening/online-ide/HEAD/Images/MongoDB.png -------------------------------------------------------------------------------- /Images/Python.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nightingale-evening/online-ide/HEAD/Images/Python.png -------------------------------------------------------------------------------- /Images/Verilog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nightingale-evening/online-ide/HEAD/Images/Verilog.png -------------------------------------------------------------------------------- /Images/Accounts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nightingale-evening/online-ide/HEAD/Images/Accounts.png -------------------------------------------------------------------------------- /Images/Cplusplus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nightingale-evening/online-ide/HEAD/Images/Cplusplus.png -------------------------------------------------------------------------------- /Images/Homepage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nightingale-evening/online-ide/HEAD/Images/Homepage.png -------------------------------------------------------------------------------- /Images/HtmlCssJs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nightingale-evening/online-ide/HEAD/Images/HtmlCssJs.png -------------------------------------------------------------------------------- /Images/Javascript.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nightingale-evening/online-ide/HEAD/Images/Javascript.png -------------------------------------------------------------------------------- /Images/Register.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nightingale-evening/online-ide/HEAD/Images/Register.png -------------------------------------------------------------------------------- /Images/Typescript.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nightingale-evening/online-ide/HEAD/Images/Typescript.png -------------------------------------------------------------------------------- /Frontend/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nightingale-evening/online-ide/HEAD/Frontend/public/favicon.ico -------------------------------------------------------------------------------- /Backend/Login/utils/otpGenerator.js: -------------------------------------------------------------------------------- 1 | const crypto = require('node:crypto'); 2 | 3 | function generateOtp() { 4 | return crypto.randomBytes(3).toString('hex'); 5 | } 6 | 7 | module.exports = { generateOtp }; 8 | -------------------------------------------------------------------------------- /Backend/Genai/templates/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 |Your Online IDE account has been deleted.
13 |Thank you for having been a part of Online IDE.
14 | 15 | 16 | `, 17 | }; 18 | 19 | try { 20 | await transporter.sendMail(mailOptions); 21 | } catch (error) { 22 | throw new Error('Failed to send account deletion email'); 23 | } 24 | } 25 | 26 | module.exports = { sendDelEmail }; 27 | -------------------------------------------------------------------------------- /Frontend/src/samples/go.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "fmt" 5 | ) 6 | 7 | func main() { 8 | // Declare and initialize variables 9 | var name string 10 | var age int 11 | 12 | // Ask for user input 13 | fmt.Print("Enter your name: ") 14 | fmt.Scanln(&name) 15 | 16 | fmt.Print("Enter your age: ") 17 | fmt.Scanln(&age) 18 | 19 | // Display a greeting message 20 | fmt.Printf("Hello, %s! You are %d years old.\n", name, age) 21 | 22 | // Call a function to calculate the year of birth 23 | yearOfBirth := calculateYearOfBirth(age) 24 | 25 | // Print the calculated year of birth 26 | fmt.Printf("You were born in the year %d.\n", yearOfBirth) 27 | } 28 | 29 | // Function to calculate the year of birth 30 | func calculateYearOfBirth(age int) int { 31 | currentYear := 2024 32 | return currentYear - age 33 | } 34 | -------------------------------------------------------------------------------- /Frontend/src/samples/julia.jl: -------------------------------------------------------------------------------- 1 | struct Node 2 | data::Int 3 | prev::Union{Node,Nothing} 4 | next::Union{Node,Nothing} 5 | end 6 | 7 | function create_list(arr) # create a doubly linked list from an array 8 | head = nothing 9 | tail = nothing 10 | for x in arr 11 | new_node = Node(x, tail, nothing) 12 | if tail != nothing 13 | tail.next = new_node 14 | end 15 | tail = new_node 16 | if head == nothing 17 | head = new_node 18 | end 19 | end 20 | return head 21 | end 22 | 23 | function print_list(head) # print the list 24 | curr = head 25 | while curr != nothing 26 | print(curr.data, " ") 27 | curr = curr.next 28 | end 29 | println() 30 | end 31 | 32 | 33 | head = create_list([1, 2, 3, 4, 5]) # create a sample list 34 | print_list(head) # print the list 35 | 36 | -------------------------------------------------------------------------------- /Frontend/src/samples/verilog.v: -------------------------------------------------------------------------------- 1 | module half_adder(input a, input b, output sum, output carry); 2 | 3 | // Define the logic for sum (XOR of inputs) 4 | assign sum = a ^ b; 5 | 6 | // Define the logic for carry (AND of inputs) 7 | assign carry = a & b; 8 | 9 | endmodule 10 | 11 | // Testbench to verify the half adder 12 | module half_adder_tb; 13 | reg a, b; 14 | wire sum, carry; 15 | 16 | half_adder ha( 17 | .a(a), 18 | .b(b), 19 | .sum(sum), 20 | .carry(carry) 21 | ); 22 | 23 | initial begin 24 | // Display header 25 | $display("a b | sum carry"); 26 | $display("-----------"); 27 | 28 | // Test cases 29 | a = 0; b = 0; #1; $display("%b %b | %b %b", a, b, sum, carry); 30 | a = 0; b = 1; #1; $display("%b %b | %b %b", a, b, sum, carry); 31 | a = 1; b = 0; #1; $display("%b %b | %b %b", a, b, sum, carry); 32 | a = 1; b = 1; #1; $display("%b %b | %b %b", a, b, sum, carry); 33 | 34 | // End simulation 35 | $finish; 36 | end 37 | 38 | endmodule 39 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2024 - present GLAD432 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /Frontend/vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | import { createHtmlPlugin } from 'vite-plugin-html'; 4 | import tailwindcss from '@tailwindcss/vite' 5 | 6 | export default defineConfig({ 7 | base: "/", 8 | plugins: [react(), 9 | tailwindcss(), 10 | createHtmlPlugin({ 11 | minify: { 12 | collapseWhitespace: true, 13 | removeComments: true, 14 | removeRedundantAttributes: true, 15 | useShortDoctype: true, 16 | removeEmptyAttributes: true, 17 | removeScriptTypeAttributes: true, 18 | removeStyleTypeAttributes: true, 19 | minifyCSS: true, 20 | minifyJS: true, 21 | }, 22 | }), 23 | ], 24 | build: { 25 | chunkSizeWarningLimit: 1000, 26 | minify: 'terser', 27 | terserOptions: { 28 | compress: { 29 | drop_debugger: true 30 | }, 31 | output: { 32 | comments: false 33 | }, 34 | mangle: { 35 | toplevel: true 36 | } 37 | } 38 | }, 39 | }) 40 | -------------------------------------------------------------------------------- /Frontend/src/samples/swift.swift: -------------------------------------------------------------------------------- 1 | class NodeWe received a request to verify your email address.
13 |To complete your email verification, please use the OTP below:
14 |This OTP will expire in 10 minutes. If you did not request this, please ignore this email.
16 | 17 |Thank you for choosing our service!
18 | 19 | 20 | `, 21 | }; 22 | 23 | try { 24 | await transporter.sendMail(mailOptions); 25 | } catch (error) { 26 | throw new Error('Failed to send OTP email'); 27 | } 28 | } 29 | 30 | module.exports = {sendOtpEmail}; -------------------------------------------------------------------------------- /Frontend/src/samples/cpp.cpp: -------------------------------------------------------------------------------- 1 | #include23 | The page you are looking for does not exist. 24 |
25 |160 | Don't have an account?{" "} 161 | 167 |
168 |169 | 175 |
176 |285 | Please check your email for the OTP. If you don't see it, be 286 | sure to check your{" "} 287 | spam folder.{" "} 288 | 289 | If the OTP doesn't appear in your inbox, try using a different 290 | email address. 291 | 292 |
293 |357 | {otpError} 358 |
359 | )} 360 | 361 | {otpResent && !otpError && ( 362 |363 | OTP resent successfully! Check your email. 364 |
365 | )} 366 | 367 | {otpResendError && ( 368 |369 | {otpResendError} 370 |
371 | )} 372 | 373 | {otpSent && ( 374 | <> 375 | 390 |431 | Already have an account?{" "} 432 | 438 |
439 |460 | 466 |
467 |{errorMessage}
384 | )} 385 | 386 | {!isPasswordVerified && ( 387 | 426 | )} 427 | 428 | {isPasswordVerified && ( 429 |430 | 431 | Email: 432 | 433 | 437 | {formData.email} 438 | 439 |
440 | )} 441 | 442 | {isPasswordVerified && ( 443 |