Coder Social home page Coder Social logo

mykeels / college-portal Goto Github PK

View Code? Open in Web Editor NEW
10.0 6.0 6.0 338 KB

A university portal software. This project now being rebuilt with Laravel PHP at https://github.com/college-portal/college-portal

License: MIT License

JavaScript 100.00%
portal college-portal student-registration university-portal nigerian-universities nodejs

college-portal's Introduction

Open Source College Portal

An open source portal for tertiary institutions in Nigeria, brought to you by the DevCenter Community.

Why are we doing this?

The Problem:

Ade has recently gotten admission into the University of Ibadan. He is to go through the registration process including the various payments, and course registration with the university online portal.

He uploads his WAEC and GCE certificates and submits.

It's successful.

However, when he checks the page to view them, they are not there.

Where are they?

Turns out there's a bug on the portal and Ade has to report it to the registrar.

It takes two weeks for the problem to be solved because it has to be reported to the company that built and manages the portal.

The Proposed Solution:

An open source college portal for interested Nigerian universities to make use of for student registration and study management.

The processes Nigerian universities use for student registration are very similar, making it possible to manage them with a common open system.

Advantages:

  • When there is a bug, it can be easily managed via GitHub issues
  • Students can make pull requests for issues they find
  • Students have a better experience because when an issue is solved, every university using the system is affected.
  • It could be the first introduction for many Nigerian students to open source software.
  • Large user base
  • Analytics

Risks and possible mitigating factors:

  • Nigerian universities not wanting to use it because of skepticism
    • Presentation and Marketing will matter a lot
    • Many new Nigerian universities need portals
  • It's a huge project ... Where will the finance come from?
    • @ghost_worker gave a pretty cool idea ... While the software itself is free and every university is encouraged to use it, the universities may require help with setup and management which will not be free.
  • What if setup+management makes a profit? Who gets it?
    • Charity
      • Many Nigerian students cannot afford fees
    • Donations to relief funds from the open source community
    • Could be used to teach Nigerian kids to code

college-portal's People

Contributors

buddiex avatar mykeels avatar sage-godspeed avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

college-portal's Issues

Create Model USER - USER_HAS_ROLES

As a User
I want to have a role / roles
so that I can perform actions.

Required Fields

USERS_ID,
ROLES_ID

Model Dependencies

USERS,
ROLES

Notes:

image

Create Model USER - IMAGE

As a User
I want to have a profile image
For identification.

Required Fields

ID,
IMAGE_TYPE,
USERS_ID,
image_name,
location

Model Dependencies

USERS,
IMAGE_TYPE

Notes:

image

Create Model USER - PHONE_NUMBER

As a User
I want to sign up / in
Using my (unique) phone number(s).

Required Fields

ID,
USERS_ID,
number.

Model Dependencies

USERS

Notes:

image

Create Model USER - IMAGE_TYPE

As a User
I want to have a profile image
For identification.

Required Fields

ID,
type name

Model Dependencies

IMAGE

Notes:

image

Add tests for data models/users proxies

Add models/users data proxies

Please Read ๐Ÿ‘‡

Don't be afraid ... It's 9 issues in one, and you don't have to handle more than one, but it'd be cool if you did.

A data proxy is an object that contains functions for accessing a data record using the CRUD model.

It contains getAll, getById, insert, update, and destroy functions.

Each data proxy is a wrapper around an already existing sequelize model.

Take a look at the action-proxy which is a data proxy for models/users/actions.model as a guide for implementing data proxies.

It exports a function which takes in a sequelize model, and EventEmitter instance, and returns an object which is a data proxy for the sequelize model.

Events

Every action that mutates the state of the DB must raise an Event.

Sample Events have been given in action-proxy which are:

{
    INSERT_SUCCESSFUL: 'db:action:insert:success',
    INSERT_ERROR: 'db:action:insert:error',
    UPDATE_SUCCESSFUL: 'db:action:update:success',
    UPDATE_ERROR: 'db:action:update:error',
    DELETE_SUCCESSFUL: 'db:action:delete:success',
    DELETE_ERROR: 'db:action:delete:error'
}

This is to enable other modules to listen to these events and perform some action

Data Proxies Needed

  • Phone-Number proxy for its model
  • Role proxy for its model
  • User-Type proxy for its model
  • User proxy for its model
  • Image proxy for its model
  • Image-Type proxy for its model
  • User-Has-Role proxy for its model
  • User-Has-Type proxy for its model
  • Role-Performs-Action proxy for its model

How to proceed

  • First, assign yourself to this task
  • Next, write a comment stating which proxy you indicate to help with
  • I hope you've forked the repo at this point, but if you haven't do so
  • Start ...
  • If you have any issues, you can open an issue, and tag it in the comment you made

Create Model USER - ROLES

As a User
I want to have specific roles
so that I can perform certain actions.

Required Fields

ID,
USER_TYPE_ID,
name

Model Dependencies

USER_TYPE,
USER_HAS_ROLES,
ROLES_PERFORM_ACTIONS

Notes:

image

Ideas for the ERP model

To enable a more complete range of uses the application would serve,i think schemas should be created for the following features..

  • [ Payment integration] might include traceable history of payments and unpaid/outstanding payments.
    So the institution/dept should be able to setup/adjust the payment per semester/per dept . (since in some schools, fees differ per course)

  • [School and Department/Faculty wide notifications ]. So prompt announcements can get to those concerned, probably should be implemented differently for students and staff, or at least separately.. like staff internal memos and stuff or departmental messages for students, this should be forwarded to the recipient via mail as its not reasonable to expect people to be on-line on the platform at all times

  • [ Possible missing fields] I can't spot fields for Gender, Matric No...

Create Model USER - USER_IS_USER_TYPE

As a User
I want to be of a particular type
In order to have specific roles.

Required Fields

USERS_ID,
USER_TYPE_ID

Model Dependencies

USERS,
USER_TYPE

Notes:

image

Modifications to the Data Model

There is the need for a program_department table linking the departments available for a given programme. Also, the student table needs a programme_id key as you need to know what programme the student is enrolled in. The course table needs programme_id & course registration needs to hold the unit of the course as at when it was registered and the session it was registered.

Create Model USER - USER_TYPE

As a User
I want to be of a particular type
In order to have specific roles.

Required Fields

ID,
name

Model Dependencies

ROLES,
USER_IS_USER_TYPE

Notes:

image

Create Model USER - ACTIONS

As a User
I want to be able to perform certain actions.

Required Fields

ID,
name,
start date,
end date

Model Dependencies

ROLES_PERFORM_ACTIONS

Notes:

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.