XYZ Prosjekt - PROG2053
Installation notes:
- Install nodeJs
- Run "npm i" in both the server and client folders of the project.
- While in the root folder of the project: "docker-compose up -d" - this will take a long time the first time you do it.
- Are you getting an error after doing "docker-compose up -d", saying "[...] Filesharing has been cancelled"? -> Go to Docker for Windows app (or similar) -> Settings -> Resources -> File sharing -> Add all your drives (or play around with figuring out what exactly you need).
- Are you getting an error saying "npm ERR! ch() never called"? -> Delete "package-lock.json" from the client directory, then build the client again using "docker-compose build client"
Want to reset your containers and volumes fully?
- "docker system prune -a --volumes"
Want to get in to a container for some reason?
- "docker-compose exec bash"
Group members:
Sindre Eiklid Brage Heimly Næss Casper Melhus Jan Olaf Storeng Rickard Loland
Setup:
- docker-compose up -d
The project runs on localhost:8080
Objectives
Students should demonstrate that they know and able to use: • Basic front-end JavaScript manipulate data and fetch data from the server. • Basic back-end with NodeJS, access to database. • File management. • Use of web components and other programming libraries. And create a basic dynamic website using these skills.
Basic Description
In this assignment, we have created a forum webpage for company XYZ, managing data about the Admins that control the website, Moderators who help the admins, and Users who interact with the website every day.
The site’s main data asset is text since the users can create different topics and each of these topics have their own posts & comments. A like/dislike system has been implemented to add a ranking to the best posts/comments and ensure the user finds answers that are properly curated by the community & administrators. If a user is regularly active, they usually try to become moderators through request. For the user to become a moderator, a request must be done to the admins of the site. Moderators ensure that the posts have no offensive language and no spam.
New users will have to register a user for the forum (basic form page). Once registered and logged in the users will have access to the forum pages and a page to edit its basic information.
Admins have the following rights:
- All access to posts and comments (including block and delete)
- Accept/Decline User requests to become Moderator.
- All the rights the Moderator has. Admins will be able to see all the pages in the forum and its own basic information page. Asides from that the admin user will have a page where they can see a total list of moderators and users. Finally, the admin user will have a page where they can see the users that have requested to become moderator, with an ‘Accept’ or ‘Decline’ option.
Moderators have the following rights:
- Blocking of posts & comments that do not follow the forum’s rules.
- All the rights the user has. Moderators will be able to see all the pages in the forum and its own basic information page. Asides from that, the moderator user will have a page where they can see the total list of users. Finally, the moderator user will have a page where they can see the user/comments that they have been blocked.
Users have the following rights:
- Create forum posts and comments. Can update/delete ONLY own posts and comments.
- Like/dislike forum posts or comments.
- Search for forum posts (text search).
- Sort forum posts/comments by date.
- Have a profile picture, in case no profile picture is given, a standard grey man/woman profile picture can be put instead.
- Send request to the administrators to seek to become Moderator (form request).
Application Description
When launching the site you will encounter the forum and its contents, we encourage you to create/login to your user to be able to use more features properly allowing you to like/dislike content, comment and create your own posts. Alternatively if you are a user with special rights (mod or admin) you will have more options on how you wish to interact with content and other user profiles. The design is intuitive and easy to understand how you can manouver and will be easy to get used to so we highly encourage exploring the website. Most if not all of the requirements listed above have been fulfilled so you can expect them to be functioning and operating as expected.
File layout and function Description
-Work in progress
Other Requirements
• Provide a ‘readme’ file explaining how to use your application. • Use of NodeJS to communicate with the database. • For forms, use form labeling, validation of inputs (username and password hashing), autocompletion of keywords, regular expressions, etc. • Use of classes, objects, and arrays are mandatory. • Look and feel of the pages is under your discretion. • Code should be well formatted. • Use of proper variable names for readability. • Create a sensible folder structure/naming pattern for your files. • Prepare and example data for testing (also to be included in the readme instructions).
Delivery Method
• Please give repository access to the course coordinator: aland.a.mendoza@ntnu.no • Only one submission (repository) per group is needed. • Make sure it is the final version prior to submission, should there be any complications please notify accordingly