Skip to content

A Full-Stack LeetCode clone built with TypeScript React, Typescript, Express, Mongodb, Mongoose, and styled with Tailwind and CSS.

License

Notifications You must be signed in to change notification settings

ManiGhazaee/FireCode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 
 
 
 
 

Repository files navigation

TypeScript TypeScript React MongoDB Mongoose Node.js Express.js CSS3 Tailwind CSS

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:

git clone https://github.com/ManiGhazaee/FireCode.git
cd FireCode/server
npm install
cd ../client
npm install

Start the client in the client directory:

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:

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 file for details.

Acknowledgments

This project was inspired by LeetCode. Thanks to the creators of Express, MongoDB, Mongoose, TypeScript, and React.