ConvoCode is a community hub to ignite curiosity and conversation around AI coding possibilities. Whether you're a software developer, a researcher, an entrepreneur, or simply interested in the future of technology, we invite you to join the #ConvoCode community in exploring this fascinating topic. View our mockups below and read more about ConvoCode in our medium article.
You must have Node and yarn installed to run this project.
yarn install
yarn start
to run in the local development environmentThis web site uses React.js. We use react-redux for persistent state management, and react-router for internal routing.
create-react-app
-> used to generate scaffolding for React.js frontend redux
-> JavaScript library for managing and centralizing application stateaxios
-> Promise based HTTP client for the browser and node.js@monaco-editor/react
-> Monaco package for code editor componentformik
-> a small group of React components and hooks for building forms in Reactyup
-> Object schema validationreact-iframe
-> Simple React component for including an iframed pageJudge0 CE
-> compiler API for running code in the IDE
OpenAI Codex
-> text to code AI generation model
src/
components/ [reusable components across several screens]
resources/ [image files]
services/ [service files for sending server requests]
state/ [all redux interactions]
utils/ [utility functions]
App.js [main routing file]
index.js [initialize the redux store and app]
package.json [package]
Our data flow uses a combination of service files and redux actions. Each request to one of our servers is encapsulated in a function that is stored in a file in the services/
directory. We use axios
for sending all server requests. Most service functions are then imported into action files in the state/actions/
directory. Within an action, we call the service function to fetch data or perform an action, then dispatch actions with the resulting data. The reducers in the state/reducers/
directory then are invoked when the actions are dispatched, and they update the relevant state.
We use React functional components and hooks in all of our components. We leverage the useState
, useEffect
, and useRef
hooks throughout each of our components. We use async/await for all asynchronous functions.
render
. To view our deployed site, visit ConvoCode. Merging a PR to the main
branch will trigger an update on the deployed site.CS 98 Tim Tregubov and Natalie Svoboda