v2.0 - New Website
The new FAF website is out!
After one year, the new website is finally coming out to production. Below you will find the most significant changes done.
Backend
Overall the backend hasn't received many significant changes. It is the next step for the website to uninstall the request package with axios and clean up alot of the backend routes that repeat the same code (could be solved with a middleware maybe?). Nonetheless, the new backend is much more cleaner and easier to read since a lot of fat was cut.
Routes
Routes in the express.js have received major changes. They've all received the adequate loops needed to look cleaner (rather than repeating the same route.get for each individual page in the website). Therefore making it much cleaner and easier to read.
Routes have also been simplified. Previously, each page had its own route js page for its own custom middleware. However, alot of pages didn't need any middleware but simply display information in the frontend. Thanks to this simplification, about 21 pages in routes have been deleted.
News articles
On the /scripts/getNews.js script, we now have the capability to take blog posts from the wordpress and display them as complete news articles (long gone are the days of needing to display everything long in the forums). The getNews.js gets the news from the wordpress and creates routes/pages for each article found (meaning, we don't need to make manual commits for each news article URL or page)
API calls/extractor.js
Also on /scripts/extractor.js there's been improvement. Alot of API calls have been in a compact for loop in order to reduce code repetition. These API calls get cached in json files and reduce the amount of times the website pings the API.
Renaming/Re-pathing
A couple of the routes have received minor name changes in order to illustrate their function better (such as link.js becoming linkSteam.js) and pathing made much more simpler (for example, account/password/reset is now account/changePassword which is more simple and password doesn't need its own path).
Frontend
The frontend has received the bigger batch of changes. Ranging from new pages to overhauls in others.
New aesthetic/theme
The new website now has a theme of primary grey - black with a secondary orange/gold - dark red colors. I believe this suits us better than the white and black theme of the old website.
Update the old pages
Anything ranging from the home page to the leaderboards, all previous pages (which weren't alot) have received updates to their information and interface. Making it look more modern and easier to use or faster to load for our users.
New pages
Now we have from contribution, donation, AI, campaign, FAF teams and alot other pages in our website. All of these serve the great purpose of having a more official page to link users to rather than linking them to forum or wiki posts (for example, steam vs FAF changes, introduction guides, changes in the co-op campaign). Alot of these pages are re-using information from said forum and wiki posts (and sometimes even link to them in-case user wants more information).
Play now page
Instead of allowing our users to simply download the client (without knowing they need to do steamlinking, opening SC:FA at least once, etc) now they get redirected to a "play" page where the download button is available but also a clear set of instructions and pictures are ready to help the user feel less overwhelmed with all the "hidden" requirements that weren't shown before when an user just downloads the client.
Steam/GOG linking
Both now feature pictures and instructions from their "guides with pictures" so users don't have to continue jumping hoops to find out how to steamlink (plus it looks much better coming from an official page in the website than some random picture gallery in imgur).
Upcoming updates and issues
Next steps
The website still needs some work. A great deal of the backend's get/post routes (what makes the API know what information to change or add) has been left the same. This is due to some issues with local testing of the backend due to ipv6 issues. Nonetheless, it is planned to try and achieve a local test environment in order to update all these files. This would bring things such as permanent clan invite links, the possibility of adding clan "moderators/managers"/lieutenants (so its not up to the leader to invite/manage the clan entirely), and so on.
Also with the new feedback received from people using the new websites, updates to the leaderboards and other features will be implemented depending on what does the community deem more important/necessary.
Issues
This is the first time this form of the website will be tested on a real production environment. It is unknown if there is an issue with the code being able to support large amounts of users. Nonetheless, I'm hopeful it all works correctly and that some async/await function doesn't halt the server lol.
Personal Notes
The FAF website is my first coding project. I used it to learn everything from frontend HTML to backend express.js. It took me about a year but I'm quite proud of how much I learned thanks to it. I'll continue to maintain it and hopefully make something greater out of it. I'm very thankful to the likes of Sheikah, Brutus, Giebmasse, Rowey and everyone else that gave me their feedback and words of encouragement.