SWA(Simple Web App)

A very simple web application that functions as basic blog / social media website. made using NodeJs, MongoDB, HTML, and CSS. You can manage multiple users using a RBAC system (Role Based Access Control) Similar to what is used in some AWS services. you can allow and block people from any action including registering into or viewing the website. This started as my portfolio page, but then expanded into what it currently is. The project is project is open source, and can be viewed in this github repository.

Status : Work in progress


project

18/03/2022, 10:15 pm

Error/Success messages

Feedback for the user when they perform actions to confirm if their requests were accepted or declined, or if some error happened in the process.

Status : Done


project

18/03/2022, 10:14 pm

Deleting Users

Now Administrators can delete users if they see fit, the app can delete one or multiple users in one request.

Status : Done


project

18/03/2022, 10:14 pm

Adding and removing users from groups.

I made it so that Administrators well be able to Add multiple users to multiple groups at once, to ease moving multiple users into or out of User Groups.

Status : Done


project

18/03/2022, 10:13 pm

Role Based Access Control

I created a system of User Groups to manage multiple users, and each User Group well have Access to Actions and Resources, helps to simplify managing large amount of users permissions. It's Similar system to what amazon uses to manage users access to data.

Status : Done


project

18/03/2022, 10:12 pm

User profile

Users now can edit their profiles, add profile image, and cover image, change their display name, and add skills if they want.

Status : Done


project

18/03/2022, 10:12 pm

Sub documents

The website allows the user to update their project or blog, through sub documents, and updated documents well be pushed to the top of the home page, based on what document got updated last.

Status : Done


project

18/03/2022, 2:59 pm

18/03/2022, 2:59 pm

Uploading Images

Now the webapp can handle images, I'm using GridFs and GridFsBuckt to store and get the Image's data, I also made it so that it does not confuse images with similar names, and each image would be linked to the upload/comment/user id to avoid things getting mixed. I made the number of images limited to 9 in each post. However, that can be changed easily, but it still needs more work. I'm not sure how to pass values from the back end to the JS files of the front end yet, I don't think it's a hard thing to do. I also made it, so the blog can specify where images can appear within the text with it. Comments can only contain one Image.

Status : Done


project

18/03/2022, 2:58 pm

Style Rework

I didn't like the old style, CUZ I started to think that it has a lot of “friction”, things like you have to click a button before posting something, definitely is not a good user experience. Also, I tried to add more "Depth" to the colors to make things stand out a bit more.

Status : Work in progress


project

18/03/2022, 2:57 pm

Password hashing

I need to make sure that the passwords are not stored in “plain text” but first I need to either encrypt or hash them, hashing is a better option Since Once a text is hashed, there is no way of getting it back, but it can be compared, means even I can't know what users passwords are.

Status : Done


project

18/03/2022, 2:55 pm

Authentication

Now users can make accounts, log in and out of the website, the server well also remember who the users are, if they close the website and didn't log off, or if they, moved around different pages. that's based on some functions on the back end, and some basic cookies only checks for the users if they are logged in or not. So that users won't need to log in every time they do some action that requires authentication. Next I'll have to work on making posts, blogs, projects, and profile information.

Status : Done


project

18/03/2022, 2:54 pm

Learning Basic Security

I'm not good at security related things, and I think it is time to at least try Authenticate user, and keep them from editing and deleting other users documents

Status : Work in progress


project

18/03/2022, 2:51 pm

Blog and projects

It won't be just simple posts, I also want to be able to create blogs and update them over time, and display images in between text.

Status : Done


project

18/03/2022, 2:49 pm

Create Comments

Now users can comment on posts Feed back is important, and I want a place where I can get some of it from people about what I'm doing, I can learn something from it, or others can learn from it.

Status : Done


project

18/03/2022, 2:47 pm

Create Posts

Simple functions of every board website, I just want users to be able to upload text and images and those well be displayed based on date, not popularity

Status : Done


project

18/03/2022, 2:46 pm

Creating users

Now we can create users, and store them in our database, and the user is going to only require basic “information”. Basically no actually personal information, the user well have to make a UserID( A unique name that can't be duplicated) and UserName which is just a display name, and a password.

Status : Done


project

18/03/2022, 2:43 pm

Storing data

I managed to store data in the database, for now I'm only storing users, so that we can have the users info in the database to use it to authenticate users, so that they can have their own profiles, posts, blogs, and projects. I'm going to be working on authentication next to make sure that users can log in and log out. Also, I made have (error/success) messages for the users to make the experience a bit easier.

Status : Done


project

18/03/2022, 2:43 pm

Starting server and connecting to a database

I managed to make a web app and host it on my computer, and I managed to connect a database to it, soon I'll be able to add data to the website, and store in the database, so that we don't lose the user's data when the server needs maintenance, or re-booting. Also managed to load a page on the web app when I requested to connect to the server.

Status : Done


project

18/03/2022, 2:42 pm

Learning back-end Web development

The main goal for my website is to be able to enable the user/users to : Make profile (optional). Create Posts/Projects/Blogs/Comment on other users uploads. Update and edit the uploads. And all that has to be done in the back end, and I'm using NodeJS to host my web app. This is the first web app I ever made, I know that I could probably do these things using other frameworks, I usually would rather not use a framework and just make the thing my self, but that would take too much time. I'm planing to make my own tools instead of using a framework, but that's gonna have to wait for a few more years for now.

Status : Work in progress


project

18/03/2022, 2:41 pm

Dark and light mode

Right now this website has only a “dark” mode this is because I prefer darker background and lighter font color, this makes it easier for me to look at the screen for longer times, however I know not a lot of people like this mode, so I'm going to make a light/dark mode switch.

Status : Done