Hello everyone.

This semester at uni I’m taking a course which requires me and my group to create a complete software project. Out of the available topics we chose to make an airline ticket booking app, much like skyscanner.com. It is my responsibility to handle the majority of the coding aspect of the project, so I would like your advice.

I would like your thoughts and recommendations on what frameworks/languages/technologies you recommend we use to implement the project. I would like to avoid anything complicated that will take a long time to learn, as I only have a limited number of weeks to deliver. However we do need to be able to have a decent looking frontend, a backend that will allow users to login either as passengers or administrators (them being the ones who manage flights and handle passenger accounts etc.), and passengers should be able to at the very least input a departure city and time, and arrival city and time and get a list of available flights back (the flights don’t need to be real-world flights, we can generate that data to simulate the app).

I’ve checked out pythons flask, but (correct me if I’m wrong) while simple it seems too much so. I would need to handle user authentication, creating and connecting any databases etc. all manually from pretty much scratch. I’m interested in finding that middle ground of simple enough to get up and running with quickly, while not so simple where I need to learn 1000 other things just to get a prototype up and running.

Thanks in advance for your suggestions!

Edit: I asked my professor for advice and as he suggested I decided to go with bootstrap and sqlite. Im still open on suggestions to do the authentications though :)

  • silas
    link
    fedilink
    English
    arrow-up
    4
    ·
    edit-2
    1 year ago

    I’d look into AppWrite for handling all the backend stuff. It’s simple, easy to learn, and will give you a nice UI to set up and manage things like auth, storage, database, email, etc.

    Then you can hook it up to your frontend. Svelte is my recommendation if you’re up for learning a new framework due to how simple it is. You can dive in right now on the official interactive tutorial. Utilize the Svelte Discord server for learning too—it’s very active and you’ll get an answer fairly quick.

    HTMX is an even more basic frontend framework if you’re looking for something stripped down.

    I also recommend using a UI component library like daisyUI or Flowbite to save you even more time.

    • jeremyparker
      link
      fedilink
      arrow-up
      3
      ·
      1 year ago

      UI component library

      Seconding this - people literally spend years to do what you’re trying to do, so a component library is a really good way to shortcut a lot of the busywork, eg do you really want to spend a day or 5 trying to make it not look horrible if you open it on your phone?

      Personally, I really like IBM’s Carbon components, but it’s very opinionated which can be annoying if you’re trying to just get things done. (“Cards?? No. Find another way to do it.” I love its look, but it’s very “you think you want that, but you don’t”.)

      Svelte

      While I’m at it, also seconding this. Svelte is incredibly readable compared to other frameworks - every file starts with JS, then HTML, then CSS. It’s really easy to learn quickly, imo. Svelte is, imo, easily the most intuitive framework.

      HTMX is cool and all but all the time and energy HTMX can save you, you’ll end up having to do that crap anyway because you don’t have time to build an app from scratch - ie, you’re still going to benefit from a UI component library, and that will add all the overhead that htmx is supposedly saving you.

    • towerful
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      Supabase is another self hostable backend, although a little more complex than appwrite

  • adr1an
    link
    fedilink
    arrow-up
    4
    ·
    1 year ago

    I’d like to recommend Django for a ‘batteries included’ backend. There’s a nice ecosystem of extensions too. For frontend, I’d think you can go with htmx, but it pretty much depends on what do you wanna learn…

  • bamboo@lemm.ee
    link
    fedilink
    arrow-up
    2
    ·
    1 year ago

    If flask is a bit too simple for you, check out Django. It’s a much more batteries-included framework. It’ll simplify the database connection (it has its own orm) and also simplifies authentication.

    • promitheas@iusearchlinux.fyiOP
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      I should probably edit my OP but in the end I decided to go with bootstrap and sqlite, after adking my professor too. Im still open on suggestions to do the authentications though :)

      • bamboo@lemm.ee
        link
        fedilink
        arrow-up
        2
        ·
        1 year ago

        What are you using on the server side? Last I knew bootstrap was just a (albeit good) front end framework. SQLite is just a db.

        • promitheas@iusearchlinux.fyiOP
          link
          fedilink
          arrow-up
          1
          ·
          1 year ago

          We don’t need to go as far as actually setting up a server. Isn’t that something sqlite solves in this situation? Meaning, I don’t need to actually set up a server but can simulate what would be going on with the frontend and the actual database in an actual server? I don’t know if I’ve got it mixed up or not.

          If that’s not the case, what should I use for serverside stuff?

          • bamboo@lemm.ee
            link
            fedilink
            arrow-up
            2
            ·
            1 year ago

            If you are forgoing a backend entirely you don’t need SQLite. If you need a server that can respond to http requests, that’s where you would need something like Django or flask, and they would store their data in SQLite. If your data is all fake and you don’t need it to sync between different browsers you can just fake it all using the web storage api and a static site.

            • promitheas@iusearchlinux.fyiOP
              link
              fedilink
              arrow-up
              2
              ·
              1 year ago

              I looked into the web storage api and while interesting I do need to have something more than that for the project. I cant go full easy mode sadly xD

          • Miaou@jlai.lu
            link
            fedilink
            arrow-up
            1
            ·
            edit-2
            1 year ago

            The backend is the layer between your frontend and your database (ignoring the option of using the database itself as your backend but that’s terrible please don’t do this). Without a proper backend, you cannot have a database