Getting Started with Application Development

  • Thread starter Thread starter niteofmisfortune
  • Start date Start date
  • Tags Tags
    Application
Click For Summary

Discussion Overview

The discussion revolves around the development of a Clinical Trial Management System (CTMS) from scratch, focusing on the challenges and considerations involved in application development. Participants explore various programming languages, frameworks, and methodologies suitable for building such a system, addressing both technical and conceptual aspects.

Discussion Character

  • Exploratory
  • Technical explanation
  • Debate/contested
  • Conceptual clarification

Main Points Raised

  • One participant expresses a desire to learn and implement a CTMS, highlighting the need for speed and efficiency in data retrieval and processing.
  • Another participant suggests that the project may be overly ambitious given the original poster's limited programming experience and emphasizes the importance of defining user roles and actions.
  • Some participants propose starting with Python and Flask for prototyping, suggesting that this approach could simplify initial development.
  • Alternatives such as using Groovy with Grails are mentioned, with some participants noting the advantages of rapid application development and the ability to leverage existing Java code.
  • There are discussions about the necessity of considering security, user permissions, and backup strategies as part of the development process.
  • One participant emphasizes the iterative nature of development, suggesting that starting with a single-user model could help manage complexity.

Areas of Agreement / Disagreement

Participants do not reach a consensus on the best approach to take, with multiple competing views on programming languages and frameworks. There is acknowledgment of the complexity involved in the project, but no definitive agreement on a single path forward.

Contextual Notes

Participants express varying levels of experience and understanding of programming concepts, which may influence their suggestions. The discussion includes multiple potential frameworks and languages, each with its own set of assumptions and limitations that are not fully resolved.

Who May Find This Useful

This discussion may be useful for individuals interested in application development, particularly those looking to build complex systems with considerations for user interface design, data management, and security.

niteofmisfortune
Messages
3
Reaction score
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
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   Reactions: berkeman
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?
 
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.
 
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.
 
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
 
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.
 

Similar threads

  • · Replies 16 ·
Replies
16
Views
3K
  • · Replies 17 ·
Replies
17
Views
2K
  • · Replies 133 ·
5
Replies
133
Views
11K
Replies
86
Views
2K
Replies
3
Views
3K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 15 ·
Replies
15
Views
3K
  • · Replies 25 ·
Replies
25
Views
1K
  • · Replies 2 ·
Replies
2
Views
2K