Welcome to the Codeing Hive Server repository! This server powers a dynamic platform for coding challenges, contests, and user submissions. Below, you'll find a comprehensive guide to set up the server, contribute to the project, and an overview of the current to-do list.
Feel free to explore, contribute, and make this platform even better! If you have any questions or suggestions, don't hesitate to reach out.
-
Clone the Repo:
git clone https://github.com/CodeingHive/CodeingHive-Server-main.git cd CodeingHive-Server-main
-
Setup Repository:
-
Using bash script:
bash run.sh -i
-
Using terminal commands:
npm i cp .env.example .env docker compose up dev-db -d npx prisma migrate dev --name init npx prisma migrate deploy
-
-
Start the Server:
-
Using bash script:
bash run.sh -d # To start db visual preview bash run.sh -db
-
Using terminal commands:
# Visit http://localhost:3000 to visualize APIs and schema npm run start:dev # To start db visual preview npx prisma studio
-
-
Restart Database:
-
Using bash script:
bash run.sh -r
-
Using terminal commands:
docker compose rm dev-db -s -f -v docker compose up dev-db -d npx prisma migrate dev --name init npx prisma migrate deploy
-
All contributions are appreciated. Whether you're fixing a bug, adding a new feature, or improving documentation, your efforts make a difference. Please refer to the Contribution Guidelines for more details.
-
Auth
-
POST /auth/signup
- Signup -
POST /auth/signin
- Signin
-
-
User
-
GET /user/:id
- Get user with ID: id -
GET /user
- Get all users -
PUT /user/:id
- Update user with ID: id -
GET /user?q=
- Sort query users
-
-
Problem
-
GET /problem/:id
- Get problem with ID: id -
GET /problem
- Get all problems -
GET /problem?q=
- Sort query problems
-
-
Submission
-
GET /submission/:id
- Get submission with ID: id -
GET /submission
- Get all submissions -
POST /submission
- Submit a solution -
GET /submission?q=
- Sort query submissions
-
-
Contest
-
GET /contest/:id
- Get contest with ID: id -
GET /contest
- Get all contests -
POST /contest
- Create a contest -
PUT /contest/:id
- Update contest with ID: id -
GET /contest?q=
- Sort query contests
-
-
Contest Problem
-
GET /contest/:id/problem/:id
- Get contest problem with ID: id -
GET /contest/:id/problem
- Get all contest problems -
POST /contest/:id/problem
- Create a contest problem -
PUT /contest/:id/problem/:id
- Update contest problem with ID: id -
GET /contest/:id/problem?q=
- Sort query contest problems
-
-
Update
schema.prisma
Happy coding!