Non FRC - Database App Help Needed

Hi! So first let me start this is not for FRC but for my chapter in NHS. Im looking for help in designing an android app to log service hours. I need help linking a database online that students could login to, to log thier hours. Looking for someone to help point me and guide me in the direction of where to go. Any help is appeciate. I have basic knowledge of programming through FRC with java and thats about it.

The Android documentation has some good tutorials, and if you’re looking to write your app in Java (or Kotlin), I’d recommend getting started here.

It sounds like you already have a database that you’re trying to connect with, and if that database doesn’t have an external API (i.e. you need to write SQL in order to access the data), you’re likely going to have to host your own intermediate server which will act as a middleman between your app and the database. This isn’t terribly difficult, but could result in some additional hosting expenses (the server has to run somewhere).

After you have a web API, you’ll need to talk to it from your app. I’m sure there are tons of guides you can find online on this subject, but here’s one I just came across.

If you could provide more details about the database setup you’re working with and the requirements of the app, I’d be more than happy to answer any other questions you have!

If you are still looking for the actual database, I’d highly recommend Google Firebase: https://firebase.google.com/

1 Like

Highly recommend Firebase. Good database and some nice data visualization portals on their website. Data visualization will help if you are new at databases or app development (or for experienced users too when debugging!)

Getting started guide in the readme of the Android SDK github page: https://github.com/firebase/firebase-android-sdk

I would stay away from firebase for this one. This one seems like the perfect solution for SQL.

I suggest spinning up a LAMP stack and writing a Laravel backend to support your android front end

https://chadk.co/qhi5
This is my team’s online sign in sheet that we use. It’s funny, I just made this for another thread asking something similar

Reasons why?

OP said he had basic knowledge of programming in Java via FRC, so although your suggestions is a valid one, don’t you think it will be a little complicated for a first time user? Creating a LAMP stack isn’t that difficult, but hosting the LAMP stack, setting up security on your server, writing a custom backend in a language OP has never used, etc. seems like a LOT to take on first shot.

1 Like

He wants to log service hours, which is an excellent application for an SQL database.

There are many examples of this setup, as well as queries.

With firebase, you’d have to create a javascript function to aggregate the results based on a json array. While this isn’t hard and I’m sure OP could figure this out relatively quickly, it isn’t the right tool for the job. Logging hours is very structured, and the firebase database is for less structured data.

I’ve used both SQL and firebase (and mongo), and I am a fan of the realtime database aspect of it, but it’s not the right tool.

On the plus side, there are libraries for firebase on android, and OP could implement this in a way where there is very little backend code.

https://firebase.google.com/docs/database/android/start

Backends using SQL databases can be a hassle at first, but they’re easy once it’s all set up

When you have a hammer everything looks like a nail…

Something like SQLite would be fine for the project, but the cost of aggregating the data in Firebase is minimal to handling jdbc connections and finding a good orm (or going without one).

(to be explicitly clear, if I were to do this I’d probably roll it in sqlite because my day job almost all interfaces with sql db backends, but firebase is probably the tool that is easiest to set up and get running quickly for someone without that experience.)

2 Likes

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.