Open-Science-Community-Saudi-Arabia / MOOCs

Open Education Resources in Arabic
https://moocs-client.netlify.app/
Creative Commons Attribution 4.0 International
11 stars 35 forks source link

[12/10/2022]: BACKEND DEVELOPMENT for OSCSA MOOCs platform #5

Open RealRichi3 opened 2 years ago

RealRichi3 commented 2 years ago

Description

Open Science Community would like to develop Massive Open Online Courses (MOOCs), which are free online courses available for anyone to enroll in. We have developed our own materials and will also reuse materials from Open Life Sciences and Turing Way. In order to do that, we need to develop a platform where a participant can log in, and view videos and written materials as lessons. This will be similar to Udemy and other platforms for MOOCs. Your task is to create a backend API of the website using any backend technology.

Technology

For this we would create a MVC NodeJS application

PROJECT REQUIREMENTS

TASKS

API Description

Main

Models

Middlewares

Utilities

FEATURES

Authentication feature

#

Each course should have multiple videos Each course should have multiple exercises Each exercise should have multiple questions

Course/Video feature

Exercises and Questions

CI/CD and Tests

CONTRIBUTING

For pull request relating to any task in this issue the title should include [Date] BACKEND API [feature or bug] your title

Suggestions are highly welcomed

ALL MAJOR ANNOUNCEMENTS WILL BE MADE IN THE PARENT ISSUE #2

BatoolMM commented 2 years ago

@RealRichi3 Please don't close the issue if the PR is note reviewed and merged!

If you closed other issues, please re-open it!

RealRichi3 commented 2 years ago

Alright, i haven't completed the content of the issue that's why, but i understand you perfectly well

anslemkelechi commented 2 years ago

Awesome @RealRichi3. Looking forward to collaborating here. I would love to work on the authentication for the API, which will include all you listed above.

Amidsts commented 2 years ago

8 I will love to work on this issue

RealRichi3 commented 2 years ago

Awesome @RealRichi3. Looking forward to collaborating here. I would love to work on the authentication for the API, which will include all you listed above.

it'll be nice to pick one task so others can contribute

RealRichi3 commented 2 years ago

Plus i would have to setup the project structure first, but for now we cant do any thing until @BatoolMM approves our request to create a development branch for the backend

RealRichi3 commented 2 years ago

A dev branch has been created for development, i would create a folder backend to add all our code for the backend there

oEbuka commented 2 years ago

@RealRichi3 Now the dev branch has been created, what's next?

anslemkelechi commented 2 years ago

Awesome @RealRichi3. Looking forward to collaborating here. I would love to work on the authentication for the API, which will include all you listed above.

it'll be nice to pick one task so others can contribute

That wouldn't be an issue, if you want to contribute to #7, create a sub-issue from it and describe what you would be contributing, please add a reference to the parent issue #2

anslemkelechi commented 2 years ago

A dev branch has been created for development, i would create a folder backend to add all our code for the backend there

Please I believe we would be use MVC @RealRichi3

RealRichi3 commented 2 years ago

Yea, i'm almost done with the project setup

RealRichi3 commented 2 years ago

@RealRichi3 Now the dev branch has been created, what's next?

I would setup the project structure, once it's merged you all can make pull requests and claim any task

RealRichi3 commented 2 years ago

I have set up the project structure, i'm waiting for @BatoolMM to merge into dev branch

BatoolMM commented 2 years ago

I commented in your PR, let me know if you need me to do anything else to help you!

RealRichi3 commented 2 years ago

Thanks @BatoolMM

oEbuka commented 2 years ago

@RealRichi3 I am asking to be sure, your branch has not been merged yet right?

RealRichi3 commented 2 years ago

@oEbuka Not yet, i will inform everyone when it's ready for development

RealRichi3 commented 2 years ago

@oEbuka @anslemkelechi @ORIYOMI289 you all can start making contributions, the project structure has been added, we would be working with the dev_team2 branch

anslemkelechi commented 2 years ago

@oEbuka @anslemkelechi @ORIYOMI289 you all can start making contributions, the project structure has been added, we would be working with the dev_team2 branch

@RealRichi3 Thanks for the progress

oEbuka commented 2 years ago

@oEbuka @anslemkelechi @ORIYOMI289 you all can start making contributions, the project structure has been added, we would be working with the dev_team2 branch

Thanks

Amidsts commented 2 years ago

@RealRichi3 do we need to create our own branch when we want to push, or we should push directly to dev_team2 ?

RealRichi3 commented 2 years ago

You should create a different branch, the make pull request from your branch to the dev_team2 branch?

RealRichi3 commented 2 years ago

I would like to work on the Database Models for users and admin

anslemkelechi commented 2 years ago

I would like to work on the Database Models for users and admin

Hi @RealRichi3

Since you are working on the user model, probably I should pause till you are done before I work on the authentication since its based on the user model, or what do you think?

RealRichi3 commented 2 years ago

True

RealRichi3 commented 2 years ago

@anslemkelechi i just completed the user models including the models for password, once it's merged you can continue

RealRichi3 commented 2 years ago

I had something in mind, for every new endpoint or feature created, we should create a unit test for it, so future updates won't break previous code

anslemkelechi commented 2 years ago

@RealRichi3 Okay, I will keep my head up, thanks.

anslemkelechi commented 2 years ago

I had something in mind, for every new endpoint or feature created, we should create a unit test for it, so future updates won't break previous code

Okay That's great, I would keep that in mind. Your model will reflect that right?

RealRichi3 commented 2 years ago

@anslemkelechi the PR for the models has been merged, you can begin now, I would like to work on the course/videos features

RealRichi3 commented 2 years ago

I had something in mind, for every new endpoint or feature created, we should create a unit test for it, so future updates won't break previous code

Okay That's great, I would keep that in mind. Your model will reflect that right?

I haven't added the test yet, only the models, i'll work on that later on

RealRichi3 commented 2 years ago

For the authentication are you working on everything?

RealRichi3 commented 2 years ago

And to implement permissions, i think it would cut accross all routes, it can be something like a router middle ware to verify if a user is allowed to access a specific route, what do you think?

anslemkelechi commented 2 years ago

And to implement permissions, i think it would cut accross all routes, it can be something like a router middle ware to verify if a user is allowed to access a specific route, what do you thing?

@RealRichi3

That's exactly what I have in mind, a router middleware to protect all restricted routes.

anslemkelechi commented 2 years ago

And to implement permissions, i think it would cut accross all routes, it can be something like a router middle ware to verify if a user is allowed to access a specific route, what do you thing?

@RealRichi3

That's exactly what I have in mind, a router middleware to protect all restricted routes.

anslemkelechi commented 2 years ago

For the authentication are you working on everything?

For now, I would, nobody has expressed a desire to work on other parts of it, I did ask that if anyone wants to contribute to it they can create a sub-issue out of this #7

RealRichi3 commented 2 years ago

True, or better still, just work on one issue at a time, if you're done and no one has claimed the other task, you can continue

RealRichi3 commented 2 years ago

You can pick the task to implement permissions

RealRichi3 commented 2 years ago

I would like to work on the async_wrappers and error handlers, can be used to abstract trycatch in all controllers

anslemkelechi commented 2 years ago

@RealRichi3 Okay, that would be fine, for now, I am working on the login and signup routes(Pending when your PR is merged for the user model), once I am done I can progress to another task on after the other.

RealRichi3 commented 2 years ago

Alright, i'll add your name now

oEbuka commented 2 years ago

@RealRichi3 could you please check my PR, I worked on the DB models. Can you also assign me to the Course/Video feature tasks.

RealRichi3 commented 2 years ago

Please if you want to work on any task, signify here first so i'll know who has claimed it

RealRichi3 commented 2 years ago

@oEbuka You didn't signify here before hand that you'll work on the models, that's why i did it and it has been merged. You can pick any other task now, and i'll assign it to you.

Note, one task at a time not a full feature, so others will be able to contribute

RealRichi3 commented 2 years ago

@anslemkelechi @oEbuka @ORIYOMI289 please when creating an issue for any of these tasks, reference this main issue so we can easily keep track of who has claimed a task and who's working on each task

RealRichi3 commented 2 years ago

@oEbuka for the course and video feature, which particular task would you like to work on first, Is it creating the models? You can pick any so i'll assign it to you

oEbuka commented 2 years ago

@oEbuka You didn't signify here before hand that you'll work on the models, that's why i did it and it has been merged. You can pick any other task now, and i'll assign it to you.

Note, one task at a time not a full feature, so others will be able to contribute

My bad, my bad.

oEbuka commented 2 years ago

@oEbuka for the course and video feature, which particular task would you like to work on first, Is it creating the models? You can pick any so i'll assign it to you

Yes, I will like to be assigned that task.

RealRichi3 commented 2 years ago

Alright @oEbuka, go ahead and create an issue for it

RealRichi3 commented 2 years ago

Perfect