Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/manighazaee/firecode
A Full-Stack LeetCode clone built with TypeScript React, Typescript, Express, Mongodb, Mongoose, and styled with Tailwind and CSS.
https://github.com/manighazaee/firecode
backend clone express firecode frontend full-stack leetcode leetcode-clone mongodb mongoose react tailwindcss typescript typescript-react vercel
Last synced: 28 days ago
JSON representation
A Full-Stack LeetCode clone built with TypeScript React, Typescript, Express, Mongodb, Mongoose, and styled with Tailwind and CSS.
- Host: GitHub
- URL: https://github.com/manighazaee/firecode
- Owner: ManiGhazaee
- License: mit
- Created: 2023-08-13T10:41:07.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-03-24T07:57:51.000Z (10 months ago)
- Last Synced: 2024-03-24T08:35:24.823Z (10 months ago)
- Topics: backend, clone, express, firecode, frontend, full-stack, leetcode, leetcode-clone, mongodb, mongoose, react, tailwindcss, typescript, typescript-react, vercel
- Language: TypeScript
- Homepage: https://fire-code.vercel.app
- Size: 692 KB
- Stars: 21
- Watchers: 2
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
![TypeScript](https://img.shields.io/badge/typescript-%23007ACC.svg?style=for-the-badge&logo=typescript&logoColor=white)
![TypeScript React](https://img.shields.io/badge/typescript%20react-%2320232a.svg?style=for-the-badge&logo=react&logoColor=%2361DAFB)
![MongoDB](https://img.shields.io/badge/mongodb-%234ea94b.svg?style=for-the-badge&logo=mongodb&logoColor=white)
![Mongoose](https://img.shields.io/badge/mongoose-%234ea94b.svg?style=for-the-badge&logo=mongoose&logoColor=white)
![Node.js](https://img.shields.io/badge/node.js-%23339933.svg?style=for-the-badge&logo=node.js&logoColor=white)
![Express.js](https://img.shields.io/badge/express.js-%23404d59.svg?style=for-the-badge)
![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white)
![Tailwind CSS](https://img.shields.io/badge/tailwind%20css-%2338B2AC.svg?style=for-the-badge&logo=tailwind-css&logoColor=white)# FireCode
FireCode is a clone of LeetCode, a platform for developers to practice coding problems and improve their skills. This project was created as a full-stack project _(my first full-stack project)_ using Express, MongoDB, Mongoose, TypeScript,TypeScript React (TSX), CSS3, and Tailwind CSS.
# Demo
You can see the live demo of website at https://fire-code.vercel.app.
# Installation
### Clone the repository and install server and client dependencies:
```bash
git clone https://github.com/ManiGhazaee/FireCode.git
cd FireCode/server
npm install
cd ../client
npm install
```### Start the client in the `client` directory:
```bash
npm start
```### Configure the MongoDB Database and JWT Secret:
Before starting the server, make sure to configure the following environment variables in the `server/.env` file:
- `MONGODB_URI`: Set this variable to your MongoDB connection string.
- `ACCESS_TOKEN_SECRET`: Set this variable to a secret key for JWT access tokens.### Configure the API URL:
To use your own API, open the `client/src/App.tsx` file and find the `API_URL` constant. Update its value to match the URL of your deployed server (`http://localhost:80`).
### Start the server in the `server` directory:
```bash
npm start
```# Features
- User authentication: Users can create an account, log in, and log out, delete account.
- Coding problems: Users can browse coding problems, submit solutions.
- User profile: Users can view their profile, including their solved problems and submissions.# Technologies Used
- Express: A web framework for Node.js
- MongoDB: A NoSQL database
- Mongoose: A MongoDB object modeling tool
- TypeScript: A typed superset of JavaScript
- TypeScript React: A JavaScript library for building user interfaces with TypeScript
- Tailwind CSS: A utility-first CSS framework
- CSS: A stylesheet language used to describe the presentation of a document written in HTML or XML# Server Dependencies
- acorn
- bad-words
- bcrypt
- cors
- dotenv
- express
- jsonwebtoken
- mongodb
- mongoose
- typescript# Client Dependencies
- @uiw/codemirror-extensions-langs
- @uiw/codemirror-theme-tokyo-night
- @uiw/react-codemirror
- axios
- markdown-it
- react
- react-dom
- react-router-dom
- react-scripts
- react-type-animation
- typescript
- web-vitals# Contributing
Contributions are welcome! If you find a bug or have a feature request, please create an issue on GitHub. If you would like to contribute code, please fork the repository and create a pull request.
# License
This project is licensed under the MIT License - see the [LICENSE](./LICENSE.md) file for details.
# Acknowledgments
This project was inspired by LeetCode.
Thanks to the creators of Express, MongoDB, Mongoose, TypeScript, and React.