So I have a new project... and I need advice

Cableguy

Expert
Licensed User
Longtime User
Hi guys

I have been given a new project.. to develop an "in-house" project management app.
The solution will have to be able to:
-Assign a team of workers to a specific project
-Assign tasks to individual team workers
-Retrieve daily log about project advancement
-Generate a report upon Project completion

This seems to be very straight forward BUT, the way I see it, i'll need a "server" app and a "client" app with the ability to register the worker (some kind of login")

The client App should present no bigger difficulties as the medium leveled ones... for me that is...
But I have no clue on how to go about the "Server" app...
Or eve on from where to start developing this kind of "half-duplex" app.

So... how would you guys approach this one?
 

inakigarm

Well-Known Member
Licensed User
Longtime User

Peter Simpson

Expert
Licensed User
Longtime User
To tell you truth, when I develop android apps for clients, I always use MySQL as the main DB and the main front end is usually(but not always) a Windows program, that's because most of my clients want it that way and they pay my bills. Sometimes I develop front end in browser based ASP.Net, but either way it's up to my clients what they want on the information that I provide to them.

That's about it really, I don't use the PHP to MySQL solution, I prefer to use a library to drive the connection between bespoke the Android app and MySQL databases. I've never ever had any serious issues with my preferred solutions, so I'll just stick to them.

I hope that your project goes well for you.
 

Beja

Expert
Licensed User
Longtime User
Any database will do the job, just make sure it supports locking down to record level.
Regarding the overall project outline as you presented it.. I can hardly understand how from daily log only one can generate a report of completion of the project.
Problems along the way, arise that can only be solved by discussion, so a weekly Status Meeting, or teleconference, for that purpose is necessary (I think) and it should be included in your project's outline.
 

Cableguy

Expert
Licensed User
Longtime User
- FrontEnd Server App:
-PHP + Bootstrap (do you know PHP programming?)
- WebApp (B4j)​
Hi inakigarm... Sorry, but PHP programming is not one of my skills... If I have any. May be a good chance to start.
 

Cableguy

Expert
Licensed User
Longtime User
I can hardly understand how from daily log only one can generate a report of completion of the project.
Each project will have its own folder, so upon completion each daily log will be included in a report.

Problems along the way, arise that can only be solved by discussion, so a weekly Status Meeting, or teleconference, for that purpose is necessary (I think) and it should be included in your project's outline.
I'm thinking it more on a monthly basis, as it will be done on my spare time..
 

LucaMs

Expert
Licensed User
Longtime User
Hi inakigarm... Sorry, but PHP programming is not one of my skills... If I have any. May be a good chance to start.

...then use a b4j server (in this way you will write code very similar to B4A code).
Also you can install a server developed with b4j virtually anywhere.

Finally, you will use the DBMS installed on the same machine, possibly even SQLite.
 

wonder

Expert
Licensed User
Longtime User
I have very little knowledge on this matter, if any at all, but from an abstract point of view, you could create a kind of "peer-to-peer" app that uses the server only as a bridge between mobile devices.

As rudimentary as it sounds, your app would do all the heavy work accessing the server only to retrieve and upload text files and folders. By time-stamping every file, you could compare different versions and have your mobile device to always retrieve/upload the most recent one.

I'm sure there must be many flaws in my logic, but this is a way for you to dodge all the Java/PHP/Server programming part.
 

Cableguy

Expert
Licensed User
Longtime User
I have very little knowledge on this matter, if any at all, but from an abstract point of view, you could create a kind of "peer-to-peer" app that uses the server only as a bridge between mobile devices.

As rudimentary as it sounds, your app would do all the heavy work accessing the server only to retrieve and upload text files and folders. By time-stamping every file, you could compare different versions and have your mobile device to always retrieve/upload the most recent one.

I'm sure there must be many flaws in my logic, but this is a way for you to dodge all the Java/PHP/Server programming part.
Exactly! The way I'm seeing it, The server will only be used as a "cabinet" to hold the files. The desktop app will be in charge of creating all needed folder and sub folders, and of sending out push notifications...
But i need to figure out how to set server path according to user id., since different users may use the same day vice to access info, changing only the login...
 

Cableguy

Expert
Licensed User
Longtime User
Server path according to user ID? Do you mean something like "c:\windows\users" on Windows 7, where every user has its own folder?
Yeap! This way, when dispatching tasks, they would automatically go into the worker folder, and the daily reports sent from the device too.
 

Cableguy

Expert
Licensed User
Longtime User
Another option would be to create worker folders inside each project main folder, that would be easier to manage, no?
 

wonder

Expert
Licensed User
Longtime User
Last edited:

wonder

Expert
Licensed User
Longtime User
Also, you can MD5 the username + password togheter like this:
B4X:
server_root = "http://yourservername.com/"
work_directory = "projects/"
userpassword = input "Enter your password: "

encoded_username = MD5(username & userpassword)
userpath = server_root & word_directory & encoded_username

Output for username = wonder / password = 12345
http://yourservername.com/projects/23193c15f3ac4c6509144c4db1c84939

B4X:
'Login Procedure

user = input("Enter your username: ")
pass = input("Enter your password: ")
encoded_username = MD5(user & pass)
userpath = server_root & work_directory & encoded_username
Note that for this method, both user and pass are case sensitive, unless you convert the username to UPPERCASE or lowercase before applying the MD5. A password should always be case sensitive.

Output for a correct login:
Welcome Page - Project X

Output for an incorrect login:

Error 404 - File Not Found

Source: http://www.md5.cz

Remember: NEVER EVER, EVER store user passwords on your app/server. As a system administrator you may have access to the hashed (encoded) passwords, but never ever to its text form.
 
Last edited:
Top