https://github.com/0xtarunkm/meet-code
https://github.com/0xtarunkm/meet-code
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/0xtarunkm/meet-code
- Owner: 0xtarunkm
- Created: 2023-09-21T18:13:20.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-11-25T15:17:59.000Z (over 1 year ago)
- Last Synced: 2025-01-17T14:55:11.135Z (4 months ago)
- Language: TypeScript
- Homepage: https://meet-code.vercel.app
- Size: 197 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Meet-Code
## Table of Contents
- [Meet-Code Application Readme](#meet-code-application-readme)
- [Table of Contents](#table-of-contents)
- [Introduction](#introduction)
- [Features](#features)
- [Technologies Used](#technologies-used)
- [Getting Started](#getting-started)
- [Prerequisites](#prerequisites)
- [Installation](#installation)
- [Configuration](#configuration)
- [Usage](#usage)
- [Contributing](#contributing)## Introduction
Welcome to Meet-Code, a coding platform that allows users to solve coding problems and test their code against a built-in code judge. Similar to LeetCode, Meet-Code provides a platform for practicing coding challenges, sharpening your problem-solving skills, and improving your coding abilities. This readme file provides essential information about the application, its features, technologies used, and how to get started with it.
## Features
Meet-Code comes with a range of features that make it a powerful coding practice platform:
- **Coding Challenges**: Users can access a library of coding problems and challenges.
- **Code Judge**: A code judge built in Express and TypeScript allows users to test their code to determine if it produces the correct results.
- **User Authentication**: Utilizes Next-Auth for secure user authentication.
- **State Management**: Recoil is used for efficient state management.
- **Database**: Prisma ORM connects the application to a PostgreSQL database for storing user data and coding challenges.
- **Validation**: Zod is employed for data validation, ensuring data consistency and security.
- **Scalability**: The code judge is deployed on Kubernetes, enabling auto-scaling and auto-healing to handle increasing user loads.
## Technologies Used
Meet-Code is built using the following technologies:
- [Next.js](https://nextjs.org/): A popular React framework for building server-rendered web applications.
- [Express.js](https://expressjs.com/): A Node.js web application framework used for building the code judge.
- [TypeScript](https://www.typescriptlang.org/): A statically typed superset of JavaScript, enhancing code quality and maintainability.
- [Prisma](https://prisma.io/): An ORM (Object-Relational Mapping) for connecting the application to a PostgreSQL database.
- [Zod](https://github.com/colinhacks/zod): A runtime type checking library for data validation.
- [Recoil](https://recoiljs.org/): A state management library for React applications.
- [Next-Auth](https://next-auth.js.org/): An authentication library for Next.js applications.
- [Kubernetes](https://kubernetes.io/): A container orchestration platform for deploying and scaling the code judge.
## Getting Started
### Prerequisites
Before running Meet-Code locally, make sure you have the following prerequisites installed on your system:
- [Node.js](https://nodejs.org/): JavaScript runtime.
- [Docker](https://www.docker.com/): Used for running PostgreSQL (for local development).
- [Kubernetes](https://kubernetes.io/): Required for deploying the code judge in a production environment.
### Installation
1. Clone the repository:
```
git clone https://github.com/tarunclub/meet-code.git
```2. Install dependencies for both the main app and the code judge:
```
cd client
npm installcd code-judge
npm install
```## Configuration
Before running the application, you need to configure it by providing the necessary environment variables. Create a .env file in both the main-app and code-judge directories and fill in the required values.
cp .env.example .env
## Usage
To run the Meet-Code application locally, follow these steps:
- start the client
```
cd client
npm run dev```
- start the code judge
```
cd code-judge
npm run build
npm run start
```- You can access the client at http:localhost:3000 and code-judge at http://localhost:8000
## Contributing
We welcome contributions to Meet-Code! Feel free to submit bug reports, feature requests, or pull requests