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 :)
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.
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.
Supabase is another self hostable backend, although a little more complex than appwrite
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…
You might try out Golang with the Gin framework to reach a minimum viable product.
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.
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 :)
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.
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?
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.
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
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
I see. So i guess i do need to use flask (or similar) after all