Cross-Platform CRM App Re-Design
Budget: $1,500 – $3,000 USD
Re-write exiting windows desktop CRM application
Written with:
• Visual Studio 2019 community edition.
• Winforms project.
• C# programming language.
• .NET framework 4.8.
• Devexpress Inc. components for Winforms.
• XPO Database ORM tool from Devexpress.
Re-write application to:
A responsive (web?) application that runs on all devices (via browser?) and uses the DevExtreme components with the fluent UI interface.
I am familiar with c# winforms projects so i feel confident and understand c#.
Questions
Is it possible to develop it as a native web application but use the Electron.js project to make it like a native, Windows, macOS, Linux, iOS and Android app?
The new program should support the following features by default:
1. Multi-tenant application. (Meaning that the Application will be used by many different companies around the world with different currencies, localization settings etc. Each different customer (company) that will buy the software, will have its own database to save the company data (customers, inventory, jobs, settings and more.)
2. We will sell the software as a SaaS model where each customer (company that will buy the program) will be charged by the number of users using the program concurrently. So each customer (company that buys the software) will have from 1 to as many users they will decide to buy.)
3. Each user that will log-into the system will have its own profile (UI Language, name, profile image and more...).
4. Each user that will log-into the system will have its own permissions to the application (like ability to view/edit/delete customers? View/edit/delete inventory items and more)
5. It will support multi language user interface so the user can change the appearance of the UI language.
6. It will support the theme switcher (light, dark) as the demo page shown above.
7. The backed database would use a MySQL or MariaDB server.
CHALLENGES:
1. Handle company information and users belong to each company.
For example how many users a company allows to be created from the application. (This is based on how many users subscription have the customer purchased).
2. Keep different customers database schema always in sync with the latest update version.
For example if we add a new feature in the application, how the db migrations will be populated to all existing customers databases.
3. Logging to manage and help diagnose issues.
4. Stable server to be able to handle this application.
5. Decide which technology we will use in 2025 for long term support and a proven development framework ideal for enterprise applications.
6. Discuss budget and time frame for the application.
Stages of the development:
A) Discuss all the above concerns and challenges and find the optimal solution. (Asp.net core?, Angular, React? or anything else)
B) Start implementing the project by setting up the development environment.
C) Implement the login/logout/register/forgot password functionality.
D) Implement Dashboard of the application. The first page that the user will see when they login.
E) Start implementing one by one the modules and functionality of the existing project. Customers, jobs, inventory, printing, notifications and so on..
Written with:
• Visual Studio 2019 community edition.
• Winforms project.
• C# programming language.
• .NET framework 4.8.
• Devexpress Inc. components for Winforms.
• XPO Database ORM tool from Devexpress.
Re-write application to:
A responsive (web?) application that runs on all devices (via browser?) and uses the DevExtreme components with the fluent UI interface.
I am familiar with c# winforms projects so i feel confident and understand c#.
Questions
Is it possible to develop it as a native web application but use the Electron.js project to make it like a native, Windows, macOS, Linux, iOS and Android app?
The new program should support the following features by default:
1. Multi-tenant application. (Meaning that the Application will be used by many different companies around the world with different currencies, localization settings etc. Each different customer (company) that will buy the software, will have its own database to save the company data (customers, inventory, jobs, settings and more.)
2. We will sell the software as a SaaS model where each customer (company that will buy the program) will be charged by the number of users using the program concurrently. So each customer (company that buys the software) will have from 1 to as many users they will decide to buy.)
3. Each user that will log-into the system will have its own profile (UI Language, name, profile image and more...).
4. Each user that will log-into the system will have its own permissions to the application (like ability to view/edit/delete customers? View/edit/delete inventory items and more)
5. It will support multi language user interface so the user can change the appearance of the UI language.
6. It will support the theme switcher (light, dark) as the demo page shown above.
7. The backed database would use a MySQL or MariaDB server.
CHALLENGES:
1. Handle company information and users belong to each company.
For example how many users a company allows to be created from the application. (This is based on how many users subscription have the customer purchased).
2. Keep different customers database schema always in sync with the latest update version.
For example if we add a new feature in the application, how the db migrations will be populated to all existing customers databases.
3. Logging to manage and help diagnose issues.
4. Stable server to be able to handle this application.
5. Decide which technology we will use in 2025 for long term support and a proven development framework ideal for enterprise applications.
6. Discuss budget and time frame for the application.
Stages of the development:
A) Discuss all the above concerns and challenges and find the optimal solution. (Asp.net core?, Angular, React? or anything else)
B) Start implementing the project by setting up the development environment.
C) Implement the login/logout/register/forgot password functionality.
D) Implement Dashboard of the application. The first page that the user will see when they login.
E) Start implementing one by one the modules and functionality of the existing project. Customers, jobs, inventory, printing, notifications and so on..