This is a backend system for an assignment submission portal, built using Node.js, Express, and MongoDB. The system supports two types of users: Users and Admins. Users can upload assignments, while Admins can view, accept, or reject those assignments.
-
User Registration & Login
-
Admin Registration & Login
-
Assignment Upload by Users
-
Assignment Review by Admins (Accept/Reject)
-
Data Validation & Error Handling
Here are the steps for installing this application to your machine:
-
Star and fork the repository.
-
Clone the repository.
git clone https://github.com/ocmodi21/Assignify.git assignify
- Install the dependencies...
cd assignify
npm install
-
Add environment variables to your .env file from Environment Variables section.
-
Build and run the project.
npm run start
To run this project, you will need to add the following environment variables to your .env file
URL
= mongodb://localhost:27017
TOKEN_KEY
SALT_ROUNDS
POST /api/v1/user/register
Request
Parameter | Type | Description |
---|---|---|
email |
string |
Required: Email of User |
password |
string |
Required: Password of User |
name |
string |
Required: Name of User |
role |
role |
Required: Role of User |
enum role {
admin
user
}
{
"name": "Test",
"email": "[email protected]",
"password": "*******",
"role": "admin"
}
POST /api/v1/user/login
Request
Parameter | Type | Description |
---|---|---|
email |
string |
Required: Email of User |
password |
string |
Required: Password of User |
{
"email": "[email protected]",
"password": "*******",
}
POST /api/v1/user/upload
Request
Parameter | Type | Description |
---|---|---|
userId |
string |
Required: Name of User |
task |
string |
Required: Name of Task |
admin |
string |
Required: Name of Admin |
Token |
string |
Required: JWT Token in header |
{
"userId": "Test",
"task": "Hello World",
"admin": "Test2"
}
GET /api/v1/user/admins
Request
Parameter | Type | Description |
---|---|---|
Token |
string |
Required: JWT Token in header |
POST /api/v1/admin/register
Request
Parameter | Type | Description |
---|---|---|
email |
string |
Required: Email of User |
password |
string |
Required: Password of User |
name |
string |
Required: Name of User |
role |
role |
Required: Role of User |
enum role {
admin
user
}
{
"name": "Test",
"email": "[email protected]",
"password": "*******",
"role": "admin"
}
POST /api/v1/admin/login
Request
Parameter | Type | Description |
---|---|---|
email |
string |
Required: Email of User |
password |
string |
Required: Password of User |
{
"email": "[email protected]",
"password": "*******",
}
GET /api/v1/admin/assignments
Request
Parameter | Type | Description |
---|---|---|
Token |
string |
Required: JWT Token in header |
POST /api/v1/admin/assignment/:id/accept
Request
Parameter | Type | Description |
---|---|---|
Token |
string |
Required: JWT Token in header |
POST /api/v1/admin/assignment/:id/accept
Request
Parameter | Type | Description |
---|---|---|
Token |
string |
Required: JWT Token in header |