Getting Started with Application Development

  • Thread starter niteofmisfortune
  • Start date
  • Tags
    Application
In summary, a professional programmer would start by identifying the types of information to be captured, the way it should or could be displayed to a user of the system. What kinds of actions can a user perform? what kind of levels should a user have ie able to view some stuff, all stuff, edit some stuff/all stuff, delete some stuff, all stuff. Audit trails to track who did what update transaction. How to backup the system?In addtion, will it be available on the internet? how to protect it from hacking attempts? ...and the list goes on...You might prototype in in Python using a SQL database with Python Flask for the web service and then migrate to a more production level using Go
  • #1
niteofmisfortune
3
0
Hello everyone. I work in Clinical Research and have an idea for CTMS (clinical trial management system) that I would like to build from scratch. My idea is a bit more complicated than just a data management application and I want to prioritize speed/efficiency of data retrieval/processing and making a streamlined user interface. I know its a big task but I want to try/learn/implement. I have limited experience with programming from high school courses (C++, JAVA, HTML - roughly 10 years ago) and I did some basic programming since then (mostly in MATLAB). I know the very basics but obviously that is not enough for my goals.

My question is regarding how you would approach beginning to learn how to do this? I am getting a bit lost in all the different languages/systems. Based on my initial research, a system like the one I am trying to creates would implement:

A Web/Application coding language that codes the user interface (like HTML)

A database system (coded with something like R)

A system to interact with the database (like PHP)

Is my understanding correct? I am looking for any resources to start learning these languages or any other suggestions on how to begin my journey. Any advice would be greatly appreciated.

Thank you in advance!
 
Technology news on Phys.org
  • #2
This project while interesting is way over your head currently.

A professional programmer would start by identifying the types of information to be captured, the way it should or could be displayed to a user of the system. What kinds of actions can a user perform? what kind of levels should a user have ie able to view some stuff, all stuff, edit some stuff/all stuff, delete some stuff, all stuff. Audit trails to track who did what update transaction. How to backup the system?

In addtion, will it be available on the internet? how to protect it from hacking attempts? ...

and the list goes on...

You might prototype in in Python using a SQL database with Python Flask for the web service and then migrate to a more production level using Go programming, a more full-fledged database and a Go specific web service.

There are other approaches to take. But you must consider them carefully as each decision you make can limit your future choices.
 
  • Like
Likes berkeman
  • #3
jedishrfu said:
This project while interesting is way over your head currently.

A professional programmer would start by identifying the types of information to be captured, the way it should or could be displayed to a user of the system. What kinds of actions can a user perform? what kind of levels should a user have ie able to view some stuff, all stuff, edit some stuff/all stuff, delete some stuff, all stuff. Audit trails to track who did what update transaction. How to backup the system?

In addtion, will it be available on the internet? how to protect it from hacking attempts? ...

and the list goes on...

You might prototype in in Python using a SQL database with Python Flask for the web service and then migrate to a more production level using Go programming, a more full-fledged database and a Go specific web service.

There are other approaches to take. But you must consider them carefully as each decision you make can limit your future choices.
I definitely understand this and the fact that even if I was to succeed it would take many years. Would you say that Python would be the absolute basic starting point for me?
 
  • #4
so what you can do is pare down the requirements to a single user:
- sql database (most common, very flexible and easy to implement) eg H2Database
- python with flask
- your code with web pages to do RESTful queries for lists, updates ...

Should work well for your purposes, as things expand you'll need to up your game and maybe switch to go or java. The multi-user with admin permissions is more complex and you'll likely need to consider security as well.
 
  • #5
Another option is to consider groovy which is basically java as a scripting language and grails for the web and data storage. This can get you operating rather quickly. You could use h2Database as the database manager. Its a clean single java jar and supports the majority of SQL commands as well as being pretty fast.
 
  • #6
After some thought, I think it would be best to think of doing a prototype and Grails would be the best option.

Why?

When starting a grails web app, you first decide on the information you want to manage. Once you've described it in a Grails model class, Grails can infer the web pages you need and will generate stubs giving you a simple working app where you can add entries, delete entries, edit/update entries and list entries.

The next step is to do simple changes to the web pages to create the kind of app you're looking for.

Here's a tutorial to try out, there are a lot of YT videos and paid courses on Grails development. One of its key strengths is that it uses Groovy which is a scripting version of Java meaning Groovy can utilize Java code with little to no modification.

https://guides.grails.org/creating-your-first-grails-app/guide/index.html

Grails came out of emulating the Ruby on Rails success story using using Groovy as the base language.

https://en.wikipedia.org/wiki/Grails_(framework)

and more on groovy:

https://en.wikipedia.org/wiki/Apache_Groovy

Later on, you may want to get into web hosting if many folks are going to be using your app:

https://www.a2hosting.com/grails-hosting
 
  • #7
jedishrfu said:
After some thought, I think it would be best to think of doing a prototype and Grails would be the best option.

Why?

When starting a grails web app, you first decide on the information you want to manage. Once you've described it in a Grails model class, Grails can infer the web pages you need and will generate stubs giving you a simple working app where you can add entries, delete entries, edit/update entries and list entries.

The next step is to do simple changes to the web pages to create the kind of app you're looking for.

Here's a tutorial to try out, there are a lot of YT videos and paid courses on Grails development. One of its key strengths is that it uses Groovy which is a scripting version of Java meaning Groovy can utilize Java code with little to no modification.

https://guides.grails.org/creating-your-first-grails-app/guide/index.html

Grails came out of emulating the Ruby on Rails success story using using Groovy as the base language.

https://en.wikipedia.org/wiki/Grails_(framework)

and more on groovy:

https://en.wikipedia.org/wiki/Apache_Groovy

Later on, you may want to get into web hosting if many folks are going to be using your app:

https://www.a2hosting.com/grails-hosting
Thank You! I really appreciate your time. This gives me a lot to look at and consider.
 

FAQ: Getting Started with Application Development

How do I choose the right programming language for application development?

When choosing a programming language for application development, consider factors such as the type of application you want to build, your familiarity with the language, community support, and job opportunities. Popular languages for application development include Java, Python, JavaScript, C#, and Swift.

What tools do I need to get started with application development?

To get started with application development, you will need a code editor, version control system (such as Git), a package manager, and an integrated development environment (IDE) for your chosen programming language. Some popular IDEs include Visual Studio Code, IntelliJ IDEA, and Xcode.

How do I create a user interface for my application?

To create a user interface for your application, you can use tools such as HTML, CSS, and JavaScript for web applications, or frameworks like React Native or Flutter for mobile applications. Consider the user experience and design principles when creating your application's interface.

How can I test my application during development?

During development, you can test your application using unit tests, integration tests, and end-to-end tests to ensure its functionality and performance. Tools like Jest, JUnit, and Selenium can help automate testing and identify bugs early in the development process.

What are some best practices for application development?

Some best practices for application development include writing clean and maintainable code, following design patterns, using version control, documenting your code, and collaborating with other developers through code reviews and pair programming. Continuous integration and deployment practices can also help streamline the development process and improve code quality.

Back
Top