Portal for Institutes

Why institutes systems should digitalized?

The Issues faced by most institutes due to using manual paper based system to manage their work. The most institutes and schools are still working with manual system which works with paper based system. Most of the institutes had a hesitation that if they digitalized their whole system then they must spend lot of money on building it and maintaining those system. Because of that reason they still try to depend on manual paper based systems. They felt this way is the easiest way to manage these works until covid-19 rise up. And the current situation face by whole world force many work places and institutes to be locked. Then the workers and all works managed by them were force to be done in home which means Work from home concept came into place. The same situation is going with schools and institutes they needed to teach and do lectures remotely.

Solution Proposed for this problem

Every problem as solution and for this issue as solution this the project “AssignPortal” fits fine. The “AssignPortal” will fit as solution for this problem because any institute or school can register under the system and can create account. Then institute have option to register tutors and register students. Add student under certain courses and even institute can register courses under tutors. Then the tutors and student will have own portal access to do their work. This Portal will mitigate the most problems. When you maintain manually then anyone can have access to any document even some document secured there is possibility to that any worker have chance to access to document. But when it comes to our “AssignPortal” solution there is restrictions to access a certain page they need to authorize to access those then documents will automatically secured.

The Problems in Current Solution

Even though the solution is well crafted. Even though it is well planned there are some problems when it comes to implementing in real world. The certain issues addressed below has given some solution next step. Some of the problems are mention below.

  • Another issue is we are giving ability to upload assignment to the system by tutors and student can upload answers to the system. The problem arise when we determine the maximum file size that we are going to allow the users to upload as assignment or a submission to the system. Needed to determine the maximum file size system going to allow.
  • Another problem going to face when we develop the system is if one student registered under different courses which means in different batches. When we creating a schedule as system we focus on whether the tutor which current course going to schedule has another course schedule in the same time slot if any we can block it from the system but if a student has different courses schedule in the same slot for different courses then there is problem with it. In practical scenario it is hard to check whether all the student do not have any schedule crashes.
  • When we creating this kind of systems we need to remember one thing there are certain part of the system is needed on certain time. As example we can say services like assignment submission. If our system is not available near the deadline and if student unable to submit those before the deadline then that student will consider as not submitted assignment to that student. From the system we need to make sure important parts in the system is available in any time.
  • As system like this we need to update students and tutors about the changes happening in the system. As example if a tutor upload an assignment student should knew it immediately because if system did not inform them and student know it late it will bad to student which means it will give bad expression to the users of the system. Since this reason system keep updating student and tutors on the changes.

Solutions to Mitigate Problem

  • For the problem in client have control in date in system which lead client can change it and submit from front end because client has more control in frontend. As a solution after receive the payload to server we can get server current time in UTC (Universal Time) and we can get client time zone from the front end. Then in the server we can get current time from that time zone which request made and validate it with submission date if submission date is end then we can reject the submission. Which means we don’t depend on frontend submitted date and user does not have control anymore.
  • When submitting assignment or submission there should be specified maximus file size. If we plan to give portal facility which has not limited file size then users can upload any size of files to share between them as consequence to giving not restricted file upload size and unlimited storage size to every institute there should be separate storage management system and it will get bigger with time goes on and increment of number of users in the system. So we should limit the size of uploading file to determine that it only contains pdfs and documents not videos or any other big size files. We can just limit size as 30MB maximum size can upload. We can restrict it in frontend and even backend. And later if an institute needed more size then we can give subscription option to them as per the requirement.
  • When we creating schedules we can check the same tutor has another class schedule at that time but in other side we should check if there is class schedule to same student and in practical it is hard to check and change schedule for single student and go through every student. So we can do another validation that when scheduling the class we can check is there any class schedule for same batch if it is true we can warn to client. If the student is joined to another course from another batch it will be hard to control it from the system.
  • Availability in certain part of the system is solved by choosing microservices architecture as a development architecture. It helps to independently scalable even if one service is down to certain issue we can just up previous version. Even the versions were different that does not mean main functionality might miss but latest features will miss until we have up the current version.
  • Notifying the users about changes in the system. This system is initially going to be implement as web based solution. Even though it is website you can notify through the browser about updates on application but student should logged in for that to push the notification through the browser. As a solution for that we can have some email sending mechanism for notify students about the updates of schedules, assignment etc. This method is more effective than pushing notification through browser because email sending mechanism has more chance to notify more students than normal browser notification system.

System Architectural design

System Architectural design for AssingPortal
  • Spring boot
  • MySQL
  • React
  • Firebase storage

Microservice Architecture

When choosing architecture most of the time the debate goes with monolithic vs micro services. The reason behind on choosing microservices is it helps developers to break entire system into small domains and build those individually and deploy them separately. The main reason behind microservices architecture is that some large applications are very easy to develop and maintain when it is break down into small pieces rather than an entire application. And microservices each service run separately and maintain its own database. The main reason behind the separate database is if you have centralize database to all microservices which is in entire application it will create bottle neck in database the entire idea in microservice is being independent and loosely coupled if we have centralized database then all services are depend on database because of that when it is recommended to use separate database for each microservice. The main philosophy behind microservice is “Do one thing and do it well”. Services might run for achieve one main process but each service should be independently deployable and easy to replaceable. And microservice is architecture it is not depends on any specific language or database we can implement it with any programming language. And key reasons to choose microservices to this system.

Choosing spring boot

Spring boot is open source framework and one of the leading framework in java. The reason behind spring boot popularity is spring boot enables building production ready applications and there are some other features like embedded server which helps to run on containers and ability configure the application externally. In compare to other java frameworks spring boot provide some developer friendly features like flexible XML configuration, strong batch processing, database transaction, many range of tools for development, spring boot eases the dependency and comes with embedded servlet container and spring ecosystem have some options like spring data, spring security, spring ORM, spring JDBC, spring cloud and spring web etc. Final thoughts are spring developed to reduce development time and increase on performance and spring easy in development, testing and deployment. Those are the main concerns for choosing spring boot as server side framework.

Choose React as frontend

There are many frontend framework out there to build frontend application. Such Angular, Vue js etc. Also not all of them are suits very well it wary with requirements. But why we using choose react as frontend framework will be discussed lately. Before that if we take look about react where it is started and its journey in brief. Initially Facebook created react.js in 2011 for their own use. Then some of the main platforms started using react then 2013 Facebook made React.js open-sourced project. Then developer start to embrace react.js. Currently react.js used by fortune 500 companies. And there is an active community for support. But react is widely used as a library and it is not a frontend framework. React is component based library and can build reusable component. Here are some reasons to choose react as frontend in this project.

  • Material UI components by google, which offers react components that uses Google’s Material UI standards.
  • We can use React Router for routings in our application.

Firebase cloud storage to upload files

Reliability is the one of the main reason for choosing cloud storage to store assignments and submission. One feature is if file stop uploading file due to slow network connection, then process will automatically start when connection stable. When concern about security firebase has doing great and it integrated with firebase authentication which simple authentication mechanism for developers. High scalability is another reason for when our application need more space to scale the storage firebase storage built for Exabyte scale.

Using MySQL as database

MySQL is free and open source database. MySQL is well known to data security and widely used by many applications and there are many reasons like high scalability, high performance, high availability and low cost is another reason to choose MySQL by many. Here are some key features focused on choosing MySQL as database to this project