Skip to content

abhpd-team/OEP-API

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Online Exam Portal - BACKEND

banner-image

oeportal.herokuapp.com

Frontend Repository: https://github.com/abhpd-team/OEP-Frontend

Backend Repository: https://github.com/abhpd-team/OEP-API

Online Exam Portal is 🔖 a easy-to-use Platform for MCQ-based tests/exams. Helping 👩🏻‍🏫 teachers by making it easier for them to take online tests and having access to a reliable platform for free.

🦠 Due to the recent COVID-19 pandemic, students and teachers have to study and teach through online medium, we believe that this project will be helpful for many teachers and students. Even if it helps only a few teacher and students that will be a win for us and a great way to help the world in pandemic through our code.

Special ❤️ Thanks to all the contributors on all the dependencies for making this project possible.

Installation

You will need node and the package manager npm / npx that comes with node to install.

  1. On the root directory run the following:
npm install
  1. You will need to create a .env file in the root directory with the following environment variables:
DB_EXAMINERS_CONNECTION = <DB_EXAMINERS_CONNECTION>
JWT_SECRET_KEY = <JWT_SECRET_KEY>
MAILJET_API_KEY = <MAILJET_API_KEY>
MAILJET_API_SECRET = <MAILJET_API_SECRET>
REACT_APP_FRONTEND_URL = <CURRENT_FRONTEND_DEPLOYMENT>
  • You will need to create a mongodb cluster to get <DB_EXAMINERS_CONNECTION>
  • You can put any random string in <JWT_SECRET_KEY>
  • You will need to create mailjet free account to get <MAILJET_API_KEY> and <MAILJET_API_SECRET>

Usage

  1. Run the following in the root of the project and The server URI will be : http://localhost:5000
npm start

Contributing

We're eagerly looking for contributors, Even if you're a Graphics Designer a beginner or a pro at open source you're most welcome ( Please read CONTRIBUTING.md for a much detailed workflow guide of how we manage contributions and releases ) Pull requests and new bug findings are more than welcome. For major changes, please open an issue first to discuss what you would like to change.

We're also looking for Maintainers who have maintained an open source project before for their experience or someone who can help us with code reviews and helping others to contribute to our vision for the project.

Though we strongly recommend to use the product first to get a feel of our goals and to really undestand what we're trying achieve.

To get some Ideas and Inspiration for contribution read the following section.

Our Goals and Motivation

Initially we ( Abhishek Prasad and Anubhav Sharma ) started with this for University project but soon we realized that this will be a real help for many teachers who either find it hard to use current platforms or would like to use a reliable and secure platform for free.

Currently we're planning for futher development and improvement in following sections of the project:

There is no order/priority for the mentioned points

1. Responsive design

Currently we do not have responsive design UI but we would like to move to move onto a resposive design asap since for many students as well as teachers the only device they have is a phone. So all of you frontend people will be a real help here.

2. Adding more functionality

We started this project with only MCQs but would like to extend this to Subjective exams and Assignments aswell.

3. Proper Prompt for alterts and error message

Some of the error messages from backend or alerts for wrong inputs arent implemented completely so if you find any open a issue and link your PR with the fixes.

4. Form Control

Most of the form validations are still left to be implemented which is very important and at high priority to us for improvement.

5. Improving API codebase

We still need a lot of work in the backend aswell since we have a very basic schema for the DB and we have a lot of redundant code either not in use or can be improved and made more efficient and compact.

6. API documentation

We want to make sure that it is easy for the frontend developers to be able to understand the API calls and system so that it will be easier for them to implement a new functionality or alter some. A documentation for the API makes it a lot easier and quicker.

7. DevOPS ( Testing + CI + CD )

There is no Testing or CI/CD currently but as the size of the project grows this will become a big need for the project. Anyone experienced with testing and CI+CD please consider this over all.

License

MIT

❤️ Thanks for the read 😊

About

REST api with mongoDB

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published