{"id":20492812,"url":"https://github.com/kartikmehta8/codemania","last_synced_at":"2025-09-25T06:30:33.918Z","repository":{"id":109787288,"uuid":"579800228","full_name":"kartikmehta8/codemania","owner":"kartikmehta8","description":"Codemania is an online compiler that provides code completion features using ChatGPT, analyzing results and statistics using tremor.so dashboard and YouTube video recommendation at a one-stop place with user authentication.","archived":false,"fork":false,"pushed_at":"2022-12-27T17:33:23.000Z","size":449,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-15T17:40:30.530Z","etag":null,"topics":["chatgpt","firebase","javascript","mongodb","nodejs","reactjs","supabase","youtube-api"],"latest_commit_sha":null,"homepage":"https://youtu.be/oQ_j0Ur6DdU","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kartikmehta8.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-19T00:17:47.000Z","updated_at":"2024-07-27T19:35:09.000Z","dependencies_parsed_at":"2023-03-25T22:19:32.179Z","dependency_job_id":null,"html_url":"https://github.com/kartikmehta8/codemania","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kartikmehta8%2Fcodemania","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kartikmehta8%2Fcodemania/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kartikmehta8%2Fcodemania/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kartikmehta8%2Fcodemania/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kartikmehta8","download_url":"https://codeload.github.com/kartikmehta8/codemania/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234157848,"owners_count":18788496,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chatgpt","firebase","javascript","mongodb","nodejs","reactjs","supabase","youtube-api"],"created_at":"2024-11-15T17:31:07.852Z","updated_at":"2025-09-25T06:30:28.563Z","avatar_url":"https://github.com/kartikmehta8.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/77505989/208352809-10d99024-404c-4ac0-a5c7-36094354c5e8.png\" alt=\"BANNER\" /\u003e\n\u003c/p\u003e\n\n## Codemania - The compilation is reborn 🖥️\n\nThere is no place for newbies where they can run their code, seek help to resolve doubts, and keep a check on their programming activities. We always have to visit various websites \u0026 it happens that the solution provided isn't legitimate. **Codemania** is a one-stop solution for tackling this problem.\n\n### Codemania is an online compiler that provides the following features\n- Code completion using ChatGPT - users can search for questions and generate code using artificial intelligence.\n- Analyze results and statistics using the \"tremor.so\" dashboard using bar chart.\n- YouTube video recommendation at a one-stop place with user authentication.\n- Compile your code in C, C++, and Python and get the output with an easy-to-use interface.\n\n## How do we build it?\n#### CLIENT SIDE\n- We have used **ReactJS** to built the structure of the frontend along with **TailwindCSS** for styling the website.\n- We care about our website into production, so we have configured the tests using **Jest** testing framework.\n- The history records of the users are stored in **Supabase Database** for rapid-fast accessibility.\n- The authentication of our website is handled by **Firebase Auth**. Users can sign up and sign in. For the better user experience, we have implemented forgot passowrd feature where users can reset their password.\n- The **YouTube API** is configured alongside the ChatGPT to recommend the best possible videos.\n- To create an analytics dashboard, we have used **Tremor.so**.\n\n#### SERVER SIDE\n- We have used **NodeJS** and **ExpressJS** to build our backend API.\n- The **Openai's ChatGPT API** is configured at the backend to send and retrieve the results.\n- We have also used **MongoDB Database** to schedule our jobs that users have may/may not send concurrently.\n- We have used packages like `child-process` to access the shell so that we can compile the C/C++/Python code.\n- The secrets of the website are stored in an environment file `.env` to follow the best practices.\n- The functionality of the API are tested using **Postman Tool**.\n\n## Technologies\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/77505989/208357762-405c98de-2272-49a4-bf5c-30e38d230ed4.png\" alt=\"BANNER\" /\u003e\n\u003c/p\u003e\n\n## Major Accomplishments\n- User cannot access Dashboard and Analytics unless and until they sign in. We handled **private routes** with care so that we can match a production ready authentication in the given time frame.\n- The data for the analytics is fetched from **Supabase Database**. We are successful in integrating the Supabase Database Service. `Thanks to the documentation!`\n#### Code Snippet\n```javascript\nconst { data, error } = await supabase\n            .from(\"comment\")\n            .select()\n            .eq(\"email\", currentUser.email);\n            // Data is stored in an array\n        if (data) setComments(data);\n        if (error) {\n            console.log(error);\n            return;\n        }\n```\n- We are storing all the code along with the language code in **MongoDB Database**. We are ensuring that if we encounter concurrent requests, we handle them using their respective jobIDs.\n- The **ChatGPT's API** code completions are up to the mark along with our recommended YouTube videos.\n\n## Foresight\n- Support for **more languages** like Ruby \u0026 Javascript.\n- Implementing a **console** where user can enter the input.\n- Improving **UI/UX** of the website.\n- Integrating **StackOverFlow API** for direct user query.\n- Migrating the authentication service **from Firebase Auth to Supabase Auth**.\n\n\u003ch3 align=\"center\"\u003e\nProgrammer: A machine that turns coffee into code.\n\u003c/h3\u003e\n\n## Contributors\n- [Kartik Mehta](https://github.com/kartikmehta8)\n- [Juhie Chandra](https://github.com/juhiechandra)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkartikmehta8%2Fcodemania","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkartikmehta8%2Fcodemania","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkartikmehta8%2Fcodemania/lists"}