We have a college management system developed over a decade as and when requirements came along. The project team also comprised of students currently doing graduation in the course. These students are paid extra for work and are allowed one extra year to complete their graduation. The project also has two dedicated (non-student) developers who manage smooth transition of system from one outgoing / graduating student team to incoming / admitting student team. The development initially started up in Java. But due to student's unfamiliarity with Java stack and strict deadlines, they resorted to use the technology of their choice, sometimes Java, sometimes PHP. Also, over the period of time, the whole system has grown unmanageable due to lack of pre-thought design. So, we decided to streamline things a bit. Some years back we tried to reimplement everything in ERP. But after a year of efforts, ERP implementers were not able to deliver the satisfiable customization. So, now, we are thinking of rebuilding the whole system with proper design, with single tech stack. Since major code is in Java, we are thinking to reuse Java server side code and rewrite the rest of server side code in other languages in Java. So we are remained with decision of client side, which is what this question was about "initially". Initially I didn't stated all this project history thinking it will not be necessary, since we have somewhat came to the decision of such major redevelopment. So I improperly abstracted out all these details saying "building from scratch". To this, some answers stated that building from scratch wont be a good idea. Now that I have added this project history, I hope it will help you giving correct guidance in the answer.
We have following modules in system:
- new admissions (which experiences max load at time out of all modules my college being topmost college in my country),
- course registration,
- gate pass,
- guest house booking,
- grading
- Project evaluation
- Degree certificate generation
- Hostel management
- course feedback etc.
I am more confused with whether having a responsive website is enough or if we should think of more cross-platform options like PWAs / native / hybrid / flutter apps.
Out of cross plaform option, I feel PWAs will be more convenient as developing native / hybrid / flutter apps will be more time consuming and we have a constraint of student work hours. So we want to ensure least possible burden on students at the same time best application development.
Q1. So I believe thinking of only PWAs makes sense out of cross-platform options as it takes considerably less time (as same as developing a responsive website?). Am I correct with this?
If I am correct with Q1, the question boils down to responsive website vs PWA? Many sites [1],[2] state following advantage of PWAs over-responsive sites?
Features | PWAs | Responsive Web Apps | Our sample need that this feature might serve |
---|---|---|---|
Low Cost | No (Q2. But is it significantly costlier than responsive ones?) | Yes | College budget and student work hours are limited |
Offline Support | Yes | No | To avoid load time for new admissions |
Push Notifications | Yes | Yes | May be to notify its last date of course registration for new semester |
Faster UI | Yes (due to local storage) | No | To avoid load time for new admissions |
Lighter | Yes (in comparison to native apps) | Yes (in comparison to native apps) | To avoid load time for new admissions |
Fast loading | Yes (due to local storage) | No (due to reloading of UI) | To avoid load time for new admissions |
Native look | Yes | No | Nice to have |
Add to home screen | Yes | Yes | Nice to have |
Looking at this list I am started to have a feeling that PWAs are the way to go in almost any use case over responsive websites and we should also opt for the same.
Q3. Am I correct with this?
Q4. Robert asked in comments if we even need PWAs, which is cross-platform functionality. This is my response and I want to know if am correct with this:
I thought of exactly this earlier too. Though college can "manage" without going mobile, I felt we should have some good mobile strategy. All other systems have mobile apps. Online lectures on MS teams / WebEx, assignment submission, course management, discussion on Moodle. These have their own mobile app. Plus, the college has its own mobile app specifically for taking quizzes and exams. So I was thinking, how correct it would be in today's era, not to have any plan to go mobile? Especially if it is doable without putting a whole lot of extra effort for PWA over maintaining the responsive website (not sure of this, that's why this is my Q2).
Q5. Like other answers to this question which were given before adding project history, do you feel that major redevelopment work is not required? Else does this plan makes sense:
start off with identifying major chunk of reusable server side java code and build PWA targeting only those functionality thus requiring minimal initial effort and then gradually add functionalities requiring rewrite of server side code as per requirements.
PS: I have relatively less work experience in pure web development. So I need some help with this decision. Sorry if this is the wrong question to ask on this forum, but if that is the case, please let me know which StackExchange site should I head to for this help. I found this is the most relevant site among all StackExchange sites.