What do I need to learn to build my site?

I want to create a site that I think will be pretty complex. Starting as a complete beginner (not even a particularly computer-oriented person), I’ve been learning HTML, CSS, and JavaScript. Now that I’m familiar with the basics, I want to find out from an experienced developer what else I’ll need to create my site, and whether it’s feasible to attempt it myself, or if it would be wiser to hire someone.

Basically, I want to build a networking site that takes user-input data and creates a categorically structured bank of ‘themes’. These will be associated with user-input tags, which will connect them semantically and make them searchable. The site, made up of user profiles and these ‘themes’, will be structured by geographic location, kind of like Craigslist but with more detailed levels of locality. Essentially, I want to make it possible to accept organic content and convert it to a computer-processable form, to then be manipulated, searched, mapped, etc as flexibly as possible. There will be some kind of communication capability, a detailed search interface, mapping, etc, etc.

I don’t even know where to start. It sounds like some heavy-duty, data sciencey, algorithmic, I-don’t-even-know-what coding magic. My question is: generally speaking, what do I need to know to do all of this? Is it reasonable to think of learning these skills in my free time, or should I hire a pro?

Thanks for any input!

if you need a database, just use firebase or lamda to save time instead of using mongodb or sql.

Some framework: Django for Python, Rails for Ruby, Express for Node, {insert popular web framework for popular language}. This isn’t very complex, I think you’re thinking too far ahead - this, at core, is extremely basic; learning to do it yourself will take quite a while, hiring someone to build it will be quick but obviously expensive.

You have Users
Users have a location and many ‘themes’
Themes have many tags.

Three tables in a database.

There are other complexities that will emerge, but that’s it to start with, basically.

You have a database. Postgres I would advise because it has good support for geo data and will deal with what you describe without any issue, but MySQL/MariaDB are fine as well and a bit simpler; much of a muchness. Stuff like Mongo will work, but you’re then trying to fit structured relational data into non-structured non-relational structures so :man_shrugging: You aren’t going to have a trillion users who all need real-time updates, all generating terabytes of data you need to crunch NOW using advanced AI

Ideally the framework will handle the setup of said database and insulate you from complexities of it.

You have an app that allows users to register and upload and tag themes. When they register, you have them set their location, which gets converted to coordinates and saved alongside their other data.

Again, ideally the framework can handle the complexities: for example Rails has Devise to sort out authorisation/authentication, Django automatically builds admin areas, etc etc.

The app lets them upload themes, and allows them to add tags.

The themes are associated with a User, one User to many Themes. The Tags are associated many-to-many with Themes.

Any complexity comes after that’s built: you can easy query the database and filter on things.

1 Like

Agree with @DanCouper, except:

This sounds like you’re describing natural language processing or some other form of AI.

1 Like

Yeah, I kinda ignored that bit because it doesn’t make sense without more context. Organic content is just text on websites that you can find via a search engine, so it doesn’t fit with the rest of the [nebulous] description.

Edit: even if it is something like that, then that would just (just!) be a separate application that either does {ancillary thing} to data from the app or goes and gets {thing} from {internet places} and does magic stuff to it and then does {ancillary thing} to data from the app. Need more context, ie actual description rather than marketing buzzword

Edit edit this is why what I think you’re trying to get across is a lot simpler than you think, if you remove the jargon:

Note that you need to be extremely careful with the kind of data you want to save, and you need to think about that from the get-go.

2 Likes

Thanks for your thoughtful response, Dan. I’m very new to this and don’t know how to talk about it yet - hence the vague description and loose terminology. All I’m trying to do at this point is get a sense of the scope of what is a huge unknown to me, and a direction to go. It sounds like databases, some higher-level languages, and their frameworks would be good to study.

What do you mean about being extremely careful with the kind of data I want to save? Do you mean deciding early on exactly what input I want from users so that I collect uniform data and avoid getting tangled up by changing things later on?

All I meant about organic content is that I want users to be able to submit descriptive input - not limited to short text fields, check boxes, pre-selected words - and still be able to automate the processing of it, without having to read through and manually organize it. That’s where the tags come in, I guess.

I’m relieved to hear that this will probably be simpler than I think. Thanks again for your help!

1 Like

Ah, by being careful, I just mean security-wise - if this happens, you’re going to have a big load of data which contains user info alongside the location they live; you need to be super careful with it and users need to know [if] you’re not going to do stuff like sell access to the data.

Oh yeah, that’s a really good point - I thought about that. I don’t want people’s wariness of giving out personal data, especially location, to hamper the success of the network. It will have to have good security. :+1: