Is it hard to create a forum from scratch?

Watch
Deas1995
Badges: 5
Rep:
?
#1
Report Thread starter 1 year ago
#1
I have choosen my final year project to be a forum similar to this forum.. in which allows students & staff from a particular uni to be able to log in etcetc

I really dont know what ive got myself into but i want to do this idea.

I dont have much experience in php, html css.. but I am prepared to learn it.

Any advice guys
0
reply
winterscoming
Badges: 19
Rep:
?
#2
Report 1 year ago
#2
Before writing any code I'd recommend that you spend some time doing some research into the kinds of features that you want for your forum project, including the items of data as well as the features/functionality that you want too.

You could use the TSR forums as a good example, or indeed many other popular forums as a starting point. Having the vision of what you're going to build and how it will work from a user's point of view is really important before you even try to write any code

A few things to consider to start with:
- User login / authentication
- Site Navigation / Forum listing (multiple forums?)
- View forum (list of threads? pages of threads?)
- View thread (Pages of replies?)
- Create a new thread, reply-to-thread

(As a general rule, a lot of database-driven apps tend to follow a pattern of having actions like Create, Read, Update, Delete -- "CRUD")

Make sure you think very carefully about the kind of data you want and how you're going to store it -- thinking about your requirements will help a lot with this because you should start to stumble across loads of nouns which may be entities or attributes (tables or columns) in your database. e.g. User, Username, Password, Forum, Thread, Post, Created date, etc.


After that, have a look at splitting it down into smaller sub-problems so that you can solve those separately; for example, User authentication (identity) is a problem to solve by itself, so consider trying to build a small/simple web app prototype on its own which can handle user auth. Make sure you think about the data that you want to store and how you might represent that in a database.

One of the most important things to do is to look for ways of making apps which work involving the minimal amount of effort to build something which you can actually use. Try to start out with the simplest possible goal that you can imagine to start with - e.g. maybe a small page with no user login, only one forum, one thread, and just the ability to create plain-text replies to that thread.

App development is all about small, steady, incremental, progress and building things iteratively (i.e. choose a small feature to create, write a small bit of code, get it working, test it properly, move onto the next thing, repeat)... Projects always fail when you try to do too much at once, and it's a lot more difficult to write something really big and complicated compared with trying to write something small and simple - so creating everything in tiny steps is the only viable way to approach it.

Also, don't worry if you "don't know what you don't know" -- the start of any project is always about discovery and investigation. If you don't know SQL, learn some SQL. If you don't know PHP, learn some PHP, if you don't know HTML/Bootstrap, learn that, etc. Make sure you put aside some time and make sure you plan for the fact that you might not be writing very much "real" code for a month or two -- you might end up with half a dozen different prototypes, and that's great because prototypes help you understand what you don't know, explore ideas, learn new skills, and are a good way of writing small pieces of code and functionality which you might develop and reuse in your real app later

Data modelling is extremely important for all of your other features too -- the 'model' that you use to store all of your data (for example, users, forums, threads, posts, etc. ) need to be informed by the requirements of what you're trying to build, but also the structure of your data will determine how easy or difficult it is to build the rest of your app. Generally speaking, a well-designed database which follows 3rd-Normal-Form should make your life a lot easier. (i.e. data properly normalised into logically separate tables with sensible relationships between them)


In terms of the technical stuff, you'll need to learn a whole bunch of web development skills -- HTML should be very quick to learn. I'd also highly recommend learning Bootstrap CSS because you can use those to take care of a lot of the appearance/layout and get something which looks modern rather than something which looks like 1995.

A forum is quite a good project for focusing on server-side development skills because you don't really need to know much/any JavaScript to be able to create the kind of 'web forms' type apps/pages which a lot of forums use; i.e. you can get all the major functionality of a forums using standard HTML and server-side "rendering" to generate HTML based on the content of your database (PHP takes care of the server-side rendering)

There's a lot of really good material you can find online for free which explains how to do a lot of this sort of thing:
- https://wd4e.com/ for some front-end HTML/CSS from University of Michigan
- https://wa4e.com/ for some back-end web development using PHP and SQL also from University of Michigan
- https://www.theodinproject.com/ -- some good stuff to learn front-end development here
- https://www.freecodecamp.org/ -- Mixture of front-end web development topics, as well as some SQL content too.


Something else which might be really useful to you might be creating a GitHub account to store all of your code if you don't have one already. GitHub is a nice tool for helping you organise your code, as well as being a place where you can record lists of things that you need to do to get the project done:
https://www.freecodecamp.org/news/best-git-tutorial/ and https://help.github.com/en/desktop/g...github-desktop

Another really useful tool to get for Web Development is the Visual Studio Code editor which has some excellent plugins for HTML, CSS, Bootstrap and other things that you'll need for creating web apps: https://code.visualstudio.com/

Lastly, if you don't use Google Chrome as your web browser, then that's worth installing on your desktop/laptop because the "F12" development tools in Chrome are really good for front-end web development
Last edited by winterscoming; 1 year ago
3
reply
Deas1995
Badges: 5
Rep:
?
#3
Report Thread starter 1 year ago
#3
THANK YOU! THANK YOU THANK YOU! THIS IS SUPER HELPFUL!...

At the moment im trying to do my contextual report on this. So even now this is very helpful.

Thank you once again )
0
reply
Deas1995
Badges: 5
Rep:
?
#4
Report Thread starter 1 year ago
#4
(Original post by winterscoming)
before writing any code i'd recommend that you spend some time doing some research into the kinds of features that you want for your forum project, including the items of data as well as the features/functionality that you want too.

You could use the tsr forums as a good example, or indeed many other popular forums as a starting point. Having the vision of what you're going to build and how it will work from a user's point of view is really important before you even try to write any code

a few things to consider to start with:
- user login / authentication
- site navigation / forum listing (multiple forums?)
- view forum (list of threads? Pages of threads?)
- view thread (pages of replies?)
- create a new thread, reply-to-thread

(as a general rule, a lot of database-driven apps tend to follow a pattern of having actions like create, read, update, delete -- "crud")

make sure you think very carefully about the kind of data you want and how you're going to store it -- thinking about your requirements will help a lot with this because you should start to stumble across loads of nouns which may be entities or attributes (tables or columns) in your database. E.g. User, username, password, forum, thread, post, created date, etc.


After that, have a look at splitting it down into smaller sub-problems so that you can solve those separately; for example, user authentication (identity) is a problem to solve by itself, so consider trying to build a small/simple web app prototype on its own which can handle user auth. Make sure you think about the data that you want to store and how you might represent that in a database.

One of the most important things to do is to look for ways of making apps which work involving the minimal amount of effort to build something which you can actually use. Try to start out with the simplest possible goal that you can imagine to start with - e.g. Maybe a small page with no user login, only one forum, one thread, and just the ability to create plain-text replies to that thread.

App development is all about small, steady, incremental, progress and building things iteratively (i.e. Choose a small feature to create, write a small bit of code, get it working, test it properly, move onto the next thing, repeat)... Projects always fail when you try to do too much at once, and it's a lot more difficult to write something really big and complicated compared with trying to write something small and simple - so creating everything in tiny steps is the only viable way to approach it.

Also, don't worry if you "don't know what you don't know" -- the start of any project is always about discovery and investigation. If you don't know sql, learn some sql. If you don't know php, learn some php, if you don't know html/bootstrap, learn that, etc. Make sure you put aside some time and make sure you plan for the fact that you might not be writing very much "real" code for a month or two -- you might end up with half a dozen different prototypes, and that's great because prototypes help you understand what you don't know, explore ideas, learn new skills, and are a good way of writing small pieces of code and functionality which you might develop and reuse in your real app later

data modelling is extremely important for all of your other features too -- the 'model' that you use to store all of your data (for example, users, forums, threads, posts, etc. ) need to be informed by the requirements of what you're trying to build, but also the structure of your data will determine how easy or difficult it is to build the rest of your app. Generally speaking, a well-designed database which follows 3rd-normal-form should make your life a lot easier. (i.e. Data properly normalised into logically separate tables with sensible relationships between them)


in terms of the technical stuff, you'll need to learn a whole bunch of web development skills -- html should be very quick to learn. I'd also highly recommend learning bootstrap css because you can use those to take care of a lot of the appearance/layout and get something which looks modern rather than something which looks like 1995.

A forum is quite a good project for focusing on server-side development skills because you don't really need to know much/any javascript to be able to create the kind of 'web forms' type apps/pages which a lot of forums use; i.e. You can get all the major functionality of a forums using standard html and server-side "rendering" to generate html based on the content of your database (php takes care of the server-side rendering)

there's a lot of really good material you can find online for free which explains how to do a lot of this sort of thing:
- https://wd4e.com/ for some front-end html/css from university of michigan
- https://wa4e.com/ for some back-end web development using php and sql also from university of michigan
- https://www.theodinproject.com/ -- some good stuff to learn front-end development here
- https://www.freecodecamp.org/ -- mixture of front-end web development topics, as well as some sql content too.


Something else which might be really useful to you might be creating a github account to store all of your code if you don't have one already. Github is a nice tool for helping you organise your code, as well as being a place where you can record lists of things that you need to do to get the project done:
https://www.freecodecamp.org/news/best-git-tutorial/ and https://help.github.com/en/desktop/g...github-desktop

another really useful tool to get for web development is the visual studio code editor which has some excellent plugins for html, css, bootstrap and other things that you'll need for creating web apps: https://code.visualstudio.com/

lastly, if you don't use google chrome as your web browser, then that's worth installing on your desktop/laptop because the "f12" development tools in chrome are really good for front-end web development
thanks a ton!! Really helpful
1
reply
winterscoming
Badges: 19
Rep:
?
#5
Report 1 year ago
#5
(Original post by Deas1995)
THANK YOU! THANK YOU THANK YOU! THIS IS SUPER HELPFUL!...

At the moment im trying to do my contextual report on this. So even now this is very helpful.

Thank you once again )
You're welcome! good luck!
0
reply
Deas1995
Badges: 5
Rep:
?
#6
Report Thread starter 1 year ago
#6
(Original post by winterscoming)
You're welcome! good luck!
Hi i was just wonder if you could help me again. Ive been working on contextual report however im stuck on literature review bit. How do you think i could talk about other related literature that is relevant to what im doing?

Sorry to bother you again btw you just helped the first time so yeah

Kind regards,

D

Thank again
0
reply
winterscoming
Badges: 19
Rep:
?
#7
Report 1 year ago
#7
(Original post by Deas1995)
Hi i was just wonder if you could help me again. Ive been working on contextual report however im stuck on literature review bit. How do you think i could talk about other related literature that is relevant to what im doing?

Sorry to bother you again btw you just helped the first time so yeah

Kind regards,

D

Thank again
I don't know exactly what your lecturer's expectations are for the report so I can only guess really - have you been given any guidelines at all? I found a useful generic set of slides about for research/literature reviews and how to approach it, maybe this would help if the lecturers haven't provided any guidance on it? https://www.jcu.edu.au/__data/assets...rd1_073179.pdf

Based on that my guess would be to include any sources of information that you're using to help build the project and solve problems or learn about tools/languages/techniques, how to approach it, the overall design/architecture, etc - so if you're using any of the courses I linked then that's all part of the research you're doing to solve the problem. As well as any documentation, blogs, stackoverflow links, books, and pretty much any other resources really.

Also, there's any research or reading you're doing for organising the project too - for example, are you going to try to follow an agile process and use some agile methodologies? or a waterfall approach? or something else? There's loads of stuff out there about development lifecycles too.
0
reply
Deas1995
Badges: 5
Rep:
?
#8
Report Thread starter 1 year ago
#8
(Original post by winterscoming)
I don't know exactly what your lecturer's expectations are for the report so I can only guess really - have you been given any guidelines at all? I found a useful generic set of slides about for research/literature reviews and how to approach it, maybe this would help if the lecturers haven't provided any guidance on it? https://www.jcu.edu.au/__data/assets...rd1_073179.pdf

Based on that my guess would be to include any sources of information that you're using to help build the project and solve problems or learn about tools/languages/techniques, how to approach it, the overall design/architecture, etc - so if you're using any of the courses I linked then that's all part of the research you're doing to solve the problem. As well as any documentation, blogs, stackoverflow links, books, and pretty much any other resources really.

Also, there's any research or reading you're doing for organising the project too - for example, are you going to try to follow an agile process and use some agile methodologies? or a waterfall approach? or something else? There's loads of stuff out there about development lifecycles too.
Thank you again this was very helpful i have finished report and system can you take a quick look before i sumbit?
0
reply
TherealPandaEyes
Badges: 2
Rep:
?
#9
Report 5 months ago
#9
hi
0
reply
X

Quick Reply

Attached files
Write a reply...
Reply
new posts
Back
to top
Latest
My Feed

See more of what you like on
The Student Room

You can personalise what you see on TSR. Tell us a little about yourself to get started.

Personalise

How are you feeling about starting university this autumn?

Really excited (72)
22.86%
Excited but a bit nervous (142)
45.08%
Not bothered either way (37)
11.75%
I'm really nervous (64)
20.32%

Watched Threads

View All