NovaCode is an open-source coding platform built with TypeScript and Express.
**(TBA) - To be Added
- User Authentication and Profiles (TBA)
- Coding Problem Management (TBA)
- Code Submission and Judging (TBA)
- User Progress Tracking and Analytics (TBA)
- Collaborative Coding (TBA)
- Discussion Forums (TBA)
- Problem Tags and Categories (TBA)
- Leaderboard (TBA)
Server: NodeJS + Express
Database: MongoDB
Cache: Redis
Dev Dependencies:
- Typescript
- ESLint
- Mocha
- Chai
- Nodemon
Other Dependencies:
- Mongoose
- Redis
- Dotenv
- Moment.js
- JsonWebToken
- Morgan
Ensure you have the following installed:
Node.js (version >= 14)
npm
Docker
concurrently
- Clone this Repository
git clone https://github.com/fallen-ecstasy/NovaCode-Server
cd NovaCode-Server
- Install the Required Dependencies
npm install
- To Start Database Servers, You need Docker Up and Running
- Then Run the Following command in the
ROOTDIR
of Project.
docker compose up
- To Stop the Servers
docker compose down
** Additionally, You can play with Local Fork of the Repository, and configure your database servers if you want. For this, We Prefer to use Docker for Running Databases locally.
To run this project, you will need to add the following environment variables to your .env file
PORT
CORS_ORIGIN
DB_HOST
-- default:localhost
DB_PORT
-- default:67017
DB_NAME
-- default:novacode
Development Server
npm run dev
Create Build
npm run build
Production Server
npm run start
Run Linting
npm run lint
Contributions are always welcome!
See contributing.md
for ways to get started.
Please adhere to this project's code of conduct
.
A Look at our Contributors
For support, join our Discord channel.