I am trying to develop web application but I can't decide which framework to choose for front-end.
I could use Vue.js, Angular, React or Vanilla.js.
What are the parameters we need to consider while choosing front-end technology?
Stage of your business Your technology stack plays an important role at every stage of your business. If you’re just starting out, your primary goal must be launch the MVP as quickly as possible. Any language/framework/CMS tool that lets you put together a working prototype in the shortest possible time should be a good fit. WordPress is the ideal choice for a customer facing website or building a landing page as you do not require heavy programming knowledge. If your business is in the finance or banking space that requires security from the onset, opt for Java from the beginning.
Project requirement Before choosing any tech stack, understand the requirements of the project. Does your app require real-time functionality, such as a chatbot or live chat? In such cases, go with a tech stack that is good at concurrency, such as Node. If you’re a blogger who requires a functional website to increase conversions, WordPress or Drupal will work best. Is your frontend UI full of complex interactions? Then React or Angular may be good front-end tech stacks. Complete understanding of the project goals and business objectives along with the right selection of tech stack plays an important role in long-term success. Wrong selection may lead to financial loss.
Availability of resources The availability of developers who will create your product is one of the most influential factors defining your company's technology stack. Look whether your developers are willing and able to work within your chosen tech stack. Suppose you select a programming language not in common use such as Lisp, you will be hard-pressed to find programmers who know how to use it. If they do, they’ll charge a premium. Pick a tech stack that has a dynamic developer community. Commonly used programming languages will thrive in the near future and as a business owner it is easy for you to add new developers to the team.
Development and maintenance cost The technology stack directly influences development cost. There are a couple of factors to consider before picking up the right tech stack:
The cost of hiring a developer: Developers must be skilled professionals and the cost of hiring them varies based on the technologies they work with. Maintenance cost: The job doesn’t get over with the development completion of the MVP. Take into account the maintenance and upgradation cost. Consider sticking to open source technologies because they are cheaper and can be updated and changed without any restrictions.
Time to market Time to market is perhaps the most important for all startups. The faster you develop and launch your application, the more exposure you’ll get. Also, the less the time you spend developing initially, the more time you get to learn from the feedback of the users. Here is a list of the common issues you must consider while choosing a suitable tech stack: Third-party integration: Make sure the technology stack you choose allows third-party integrations, to integrate the features you need into your web or mobile application without reinventing the wheel. Developer availability: To turn your idea into a great web application, you need to have an experienced team of developers that can use the tools you choose and work with you in the long-term. Ask them if they will offer post-launch support. Testing: Make informed decisions based on how easy it would be to run tests on the chosen platform. No software product is developed perfectly the very first time. The chosen tech stack should allow you to fix bugs or tweak features easily without eating up a lot of time.
Scalability and security Products require a well-defined scalability matrix that works on both the scenarios either vertically or horizontally. Vertical scalability: lets you add more features on top of the core value proposition of your product. Horizontal scenario: lets you handle increased volume of users and transactions on the platform. Security Always make sure the application is developed keeping the best practices of security and threat mitigation in mind. Run security tests both on client and server side to eliminate the common security threats. The more robust your product is, the easier it becomes to sell in the market. At the end, make a choice that works best for your business. You can choose the technology to go with, based on your business goals, requirements and the resources you can afford.
there are plenty of articles on the internet if you search:
https://medium.com/unicorn-supplies/9-steps-how-to-choose-a-technology-stack-for-your-web-application-a6e302398e55
https://hackernoon.com/how-to-pick-the-right-web-technology-stack-for-your-product-f6d94440af2f
https://www.upwork.com/hiring/for-clients/how-to-choose-a-technology-stack-for-web-application-development/
etc.
For start, choose the technology you know better :)
My question is
Can I use sharepoint 2013 to make a hotel management program ??
if there is a way could you please tell me where to begin ?
I expect that it could. However, I wouldn't recommend it unless it is the ONLY tool available and you have no budget for anything more suitable.
I would expect there to be many options for dedicated Hotel Management suites but SharePoint is a GENERAL tool for business information management and is difficult to bend into any specific shape.
If you absolutely have to use SP. I would start by looking at what information you need to capture and manage to help run the hotel. Prioritise the information so that you know where to begin first.
Then see if there are any elements that lend themselves to being managed in fairly simple lists. As a rule of thumb, if you are reaching for a spreadsheet to manage information lists then you can readily transfer that to one or more custom lists in SharePoint.
Be warned though that you will very quickly be wishing hard for a SharePoint developer and these don't come cheap.
Alternatively, a quick google for "Hotel Management Suite" turned up a number of cloud-based systems specifically for doing that.
Either way, the first thing to do is to carefully document the business requirements needed to successfully run a hotel. Don't look for a technical solution first as that rarely works well. Know what you need first. That way you will be less likely to be led astray by "shiny things" or clever marketing.
I'm brand new to Dynamics CRM and have been asked to see if this is a viable replacement for the employee tracking software we're using now (AlexSys Team 2 Pro). We're not so much of a sales based company as the tutorials i see for CRM focus on. I know CRM is more for customer relations and sales tracking but i also know it's highly customizable and can do what i need it to do. I need something that keeps track of how many new tasks have been created and how many have been done and to show a graph or a report with the results. I've looked at some PluralSight videos and some windows videos but they all seem to focus on and really push the use of its sales side usability. We do sell our product here (i work at a software development company) but we need something that isn't focused on sales and is usable to management for tracking progress. So for example, lets say im aksed to do 4 things(tasks), I do 2 of those things and am in the process of handling my 3rd. I'm not a sales agent, lets say im a programmer, I need CRM to be able to show my manager that I had 4 new tasks, completed 2, and if possible to show that im in the process of working on the 3rd. AlexSys Team gives you different options for what state the task is in, such as In-Process and Completed but it does poorly when it comes to reporting. Are there any good places to learn how to do that in CRM, we are not using a partner and will not have someone coding this or changing this for us, i will possibly be the one working on that so i need something that can help show me how to customize it without constantly talking about sales. Im off to watch more PluralSight videos but maybe a user here knows of somewhere better to learn from or maybe just a specific PluralSight video i may have missed. Thanks for any input.
Dynamics CRM is as you've discovered very customisable and will almost certainly meet the requirements you've described. Whether it is the correct choice only you can decide.
YouTube is a really good resource for CRM videos, you can also take a look at the CRM 2011 Technical Training Videos on Channel 9 produced when the product was first released. These give a high level overview of CRM 2011 technical capabilities.
You may want to look at the basics of Activities ( in particular Tasks ) and Queues. Make sure you're clear on the usage of Status and Status Reason and how you can customise them. For reporting you can either use the built-in dashboard capabilities or create your own SSRS reports using BIDS that can be hosted within CRM. The process of producing these reports whilst subtlety different will be easily understood by anyone with some some basic SSRS skills.
I'd recommend enlisting the help of a partner in the first instance even if it's to just verify your initial design. The overall cost of their time in relation to the install and running costs of CRM won't be too significant and they may even be able to save you some money.
I'm not sure of a better place for videos, but I can speak to CRM's ability to serve as a rapid application development platform and the areas it excels. It allows you to create new fields and entities (think Database Tables) without touching a database, as well as customize forms, roles, and security with 0 code. You can also sign up for a free months trial online to setup a quick Proof of Concept.
There is so much that it can do, and do quickly, that your company may be better served to seek outside help, resulting in a better product, delivered quicker, with less overall costs than trying to do everything "in-house".
I have been search about SharePoint Governance for past few days, the more I search, more confused I am getting about this Topic.
Could anyone just explain in brief? What you know about it or are you using/implementing it?
This is one of those topics that tend to mean something a bit different when you get to the details for different companies, but basically here's my experience with it.
When you talk about governance its about who is responsible for different elements of it, from defining and managing the taxonomy, to the content for different areas. What the process of publication is, for modification is. Who administers different sections, how documents are to be handled/managed/archived/retained, what the auditing policy is. How escalations will be managed, who needs to be notified, who the stakeholders are, etc.
Basically in other words it's about looking at SharePoint as being not just a content storage system but needing to be a coherent enterprise tool with all of the key stakeholders sitting up and taking notice, and recognizing that some things need clear process to avoid either redoing everything in 18 months or being unable to find things.
Some of the most important things that I find ends up getting discussed is security (internal vs. external access, employees vs. contractors vs. external people, logging of who accessed files, etc.), roll back & geographic distribution (for performance), and revocation of rights (when someone is fired, how is their access revocation managed quickly and effectively).
Sorry this is a bit of a shotgun answer, but that's the type of stuff you're looking at. There are actually consultants who have specialized in these areas. It's usually (from what I experience) about 20% technical, 40% change management and 40% process / business.
I hope that helps.
Is there a way of offering the flexibility of Excel/Access development that end users love while instilling centralised IT management so data and logic is secure, backed up, version controlled etc. The common options are to re-write in C#/ASP.Net/Java/Python/Your Choice, but that takes away control from the users. Is there a better way, and what do you do at your site?
There is a universal issue of users creating fantastically useful Excel/Access mini-apps that the IT department would like to bring under control. Users love the flexibility that Excel affords, especially on the fly changes, graphing and data import/export. In Access we have brilliant QBE. The downside is that after a short while there are legions of out of control spreadsheets/mdbs which are mission critical, with lots poorly understood business logic, and brittle code, they're a pain to support especially as staff move on.
This puts the IT dept in an awkward spot, they'd like to support these apps, but don't know enough about them. This is made more difficult as they are typically insecure with zero documentation.
Having been of both sides of the fence I would go after the root cause of the problem. Why do uses make their own little apps? Because it is too hard/expensive/time consuming/never turns out right when they go through the “proper” channels.
The other thing is they tend to know the business very well so whilst their coding might not be very good their knowledge of what needs doing is very good.
So what can we do to combat this problem? I personally think their should be a small team of people within IT whose job (or one of their jobs) is to develop these small applications. They should work very closely with the end users and not be locked in the ivory tower of IT.
In my current role I’m on the non-IT side of the fence, I have a few quite major applications that needed to be developed so I asked for an install of visual studio and some space on an SQL server. I had my request denied. So I just asked for SQL server space, again request denied (each request taking about a week to go through) So in the end I’m “stuck” in access.
Now these are very nice access apps with version control, comments in the (shock!) and all the other nice things but at the end of the day I was trying to do things the “right” way and ended up being forced down the access route. So when my apps try to get scaled up and I’m quoting a long time for a rewrite who is to blame?
Have you considered looking at SharePoint for department-level applications? Many professional developers will balk at the idea of using Sharepoint for "application development," but it truthfully can be a great way for "power users" to start putting their data and tools in a managed framework.
With SharePoint, you can manage the overall structure of the site and then set up users with elevated permissions within their respective departments. There are some great 3rd-party tools to help with keeping an eye on what's going on in your SharePoint site.
SharePoint is not a silver bullet by any means, but it is great for many multi-user applicatinos that need to keep up with a list of data.
(The following is not really related to my above answer, but your question really hit home and I thought I'd share my similar experiences and insights.)
Our company will be going through a similar process in the near future. I'm on the "end user" side of things and can sympathize with a lot of what Kevin Ross said. Sometimes Access and Excel are simply the best tools available for me to get the job done.
Here's an example: I was asked several years ago to come up with a system for creating Purchase Orders to a vendor in China for product for which there is a 3 month lead time. Our ERP software had a few features for procurement, but nothing that even came close to the complexity of the situation we were facing. Years later, after going through several iterations of the application in Excel (VLOOKUP was a lifesaver), Access ("So that is why people using relational databases. Awesome!), and back in Excel ("let's not make this so complicated"), I still find that these Micorosft Office apps are the best tools to get the job done.
What's the cost to not use these tools to get the job done?
Contract work to our ERP vendor to add a special feature for this ordering process: are you kidding me? We'd likely pay tens of thousands of dollars for an unflexible monolithic application with horrendous user experience...and we would still end up back in Excel.
Buy third party software designed for this exact process: I've seen an on-site demo of software that does exactly what I want for our procurement process. It starts at $100,000. There are probably other tools that we can get for a few thousand dollars, but at that price point, I've already emulated most of their features in my own application.
Try to finish the job "by hand." : Ha! I'm a programmer at heart, which means I'm lazy. If it takes a solid week of sitting at a desk to work up a purchase order (it actually did take this long), you can bet I'm going to work up a solution so that it only takes me a few hours (and now it does). Perhaps the guy after me will go back to doing most of it by hand, but I'll use the tools in my toolbox to save myself time and stress.
It's so hard to find the perfect application to allow for maximum creativity on the user end but still allow IT to "manage" it. Once you think you've found a solution for one thing, you realize it doesn't do something else. Can I write I printable report in this solution like I used to do in Access? Can I write complicated Excel formulas that tie multiple data sources together from different sheets ("You want me to learn what? No, I've never heard of a "SQuirreL query" before. VLOOKUP is just fine thankyouvermuch)? Can I e-mail the results to the people in my department? Can it automatically pull data from our back-end database like I do in Excel and Access? Can I write my own code, VBA or otherwise, to make my job easier? The list goes on.
In the end, the best advice I can give to any IT manager in your situation is to respect the other workers at your company. Let them know their work is important (even if it's only useful to them and the guy at the next desk over). Let them know you are not trying to make their job harder. Don't assume they are morons for creating mission-critical applications in office productivity software; they are just trying to get the job done with the tools at hand and are usually quite capable and intelligent people. Invite them to explore different solutions with you instead of just removing the tools they currently have in their toolbox and then replacing them with ones they don't know how to use.
At the end of the day, if you have users who are smart enough to shoot themselves in the foot by creating complicated apps in Excel and Access, they are probably smart enough to learn to use the appropriate tools to accomplish the same tasks. Invest the time and energy to involve them in the process and you will have a solution that works for everyone at the end.
You could try a hybrid approach: Allow your users to use Excel/Access to home-brew their own, specialized tools, but take the mission-critical stuff and put it under IT control. There are a few strategies that could help you with this:
Make sure that your IT department is firm on VBA. Not the "yeah-everybody-can-write-a-few-lines-of-basic" type of knowledge, but in-depth training, just like you would if it were a less simple programming language. Although "real programmers" will tell you otherwise, it is possible to write large, stable applications in VBA.
If you currently have the data in Access databases, move away from that and migrate it to an SQL Server. This allows you to do centralized backup and management, while still giving your power users the flexibility to "link" these SQL Server tables to their Access frontend.
Commonly used business logic should be under control of your IT department. This can be done either with VBA, by creating an Access library that is linked by your users, or in any of the .net languages, using COM interop. The latter sounds more complicated than it is, and it will increase the satisfaction of your IT department, since developing in .net is just much more rewarding than VBA (version control possible, etc.).
I would second one of Kevin Ross's main points:
I personally think their should be a
small team of people within IT whose
job (or one of their jobs) is to
develop these small applications. They
should work very closely with the end
users and not be locked in the ivory
tower of IT.
I think any IT department that has a lot of users using Access/Excel should have at least one properly trained and experienced specialist in developing apps on those platforms. That person would be the go-between to make sure that:
IT's priorities and policies get properly implemented in the home-grown apps.
the end users get expert help in converting their home-grown efforts into something more stable and well-designed.
I would second Tony's point that whoever works with the end users in revising these apps to meet IT standards should work side-by-side with the users. The Access/Excel specialist should be an advocate for the end users, but also for the IT policies that have to be followed.
I also think that an IT department could have a specialist or two on staff, but should also have a full-time professional Access and/or Excel developer as a consultant, since the on-staff people could probably handle day-to-day issues and management of the apps, while the professional consultant could be called in for planning and architecture and for the implementation of more complex feature sets.
But all of that would depend on the size of the organization and the number of apps involved. I don't know that it would be desirable to have someone on salary who is nothing but an Access/Excel specialist, precisely because of the problem you get with all salaried employees compared to consultants -- the employees don't see as wide a variety of situations as an active consultant with the same specialization is likely to see and thus the consultant is going to have broader experience.
Of course, I recognize that many companies do not like to outsource anything, or not something that important. I think that's unwise, but then again, I'm the person that gets hired by the people who decide to do it!
If it's mission critical, and it's in Access or Excel, is built poorly, and no one understands it, it is probably time to rebuild it properly.
When the 'users' are in control it usual means one particular person is in control of the architecture, design, coding and documentation... except they normally omit the documentation step. Source control and bug reporting, the touchstone of software development, is usually absent. Few instances of code reuse, due to the nature of Office apps (code modules usually embedded into documents) and VBA (little OOP, most VBA coders don't use Implements, etc). All this means that the resulting applications are not subject to get proper scrutiny and quality can suffer, meaning there are likely to be maintenace issues, escpecially when that one user leaves. I know because I used to be that person ;)
So in order to satisfy the IT department, the proper process needs to be applied. That one 'power' user can continue to own the design and coding but will get peer review, perhaps the serivces of a technical author and a dedicated tester, be required to use source control, perhaps consider integrating with enterprise systems, etc.
There is no getting around the use of Excel/Access. It's what's available, and still very powerful and flexible. The best thing to do is offer some guidelines as to how files should look and be set up. If everyone is using similar standards then the files will live longer and more productive lives, beyond the creator's tenure at the company.
You've got some excellent answers regarding dealing with the folks and the business side of things. So my response will be more technical.
If you are going to redesign the app have the developers work in the same offices as the users. Given the users updates every day or two. If the users have any minor suggestions give those to the users within a day or two. Ultra Frequent Application Deployment
Give the power users an Access MDB/ACCDB linked to the tables with a bunch of starter queries. Let them create the queries they need to export the data to Excel for their own purposes and distribution to clients.