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.
- Clone the repository
yarn install
yarn start
to run in the local development environment
This web site uses React.js. We use react-redux for persistent state management, and react-router for internal routing.
- React.js frontend
- Node.js backend
create-react-app
-> used to generate scaffolding for React.js frontendredux
-> 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 page
Judge0 CE
-> compiler API for running code in the IDE- Documentation: https://ce.judge0.com/
OpenAI Codex
-> text to code AI generation model- Documentation: https://openai.com/blog/openai-codex
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.
- The application is deployed frontend and backend on
render
. To view our deployed site, visit ConvoCode. Merging a PR to themain
branch will trigger an update on the deployed site.
- Dylan Bienstock
- Lily Maechling
- William Perez
- Abby Owen
- Annie Revers
- Melissa Valencia
CS 98 Tim Tregubov and Natalie Svoboda