So, I have an upcoming project and I have to figure out what my best course of action is moving forward, and this is something that I am sure will have a lot of opinions one way or another. So first off, I am just interested in opinions, and no one persons is better or worse than anybody else. All I ask is that you provide so information on why you would go down 1 path or another.
So what will this project do?
1. General HR system
a. time cards
b. pay stubs
c. time off
d. time off requests
2. Company Documents
a. searchable
b. revisions
c. note: these are PDF's, excel files, and those type of items, they will not always be filled out on this system.
3. Scheduling (this is company has a 'factory' and there are production schedules)
a. Auto-generate a schedule
b. Approve auto-generated schedules
c. Modify auto-generated schedules
d. Tie into existing system via api (or that system can sometimes push data to this system). (All end points and required functionality exists on this 'other' system, and we have the ability to change things as required there)
4. There is more, and more, and more, but these are kind of the basics
This system will also be responsible for display information such as tasks, and the above noted schedules on things like read boards places through the facilities, so that everybody in the company basically always knows what each department (and sometimes person) is currently working on.
This is a system that will be accessible via the web, both internally and externally. I plan to use Laravel for the code of the system, and I am considering using Vue.js as the 'frontend'. This seems about started, of course I could use just blades, and all that but I do not really want to go down that path as I am about to describe.
I am considering building this specifically as an API. I know Vue.js (and other js frameworks eg angular) work will with apis' using things like axios. I want to get some additional feedback and real world experiences of people in this situation. Additionally this system is going to have to have native apps built for it (later down the line).
So the final question:
Is it best, based upon the above information, to build this system strictly as an API instead of a, for lack of a better term, 'web-site'?
I lean towards yes, with the understanding that parts of the system require an api to exist regardless of my choices. Building as simply an API would not require me to do work twice. Additionally it should ease the transition, should it ever occur to switch the frontend, or update apps. The API is effectively a stand along entity from the frontend.
Thanks for your response