This project involves building a web-based bulletin board application. It features standard functionalities such as viewing, posting, and deleting posts and comments. The application uses a MariaDB database for data storage, HTML and web frameworks for the front-end, and Node.js for the back-end.
- View Posts
- View all posts in a list format (excluding content/comments).
- Implement pagination to display 'n' number of posts per page.
- Detailed Post View
- View all details of a post, including comments.
- Create Post
- Fields: Author, Title, Content, Date of Creation, Unique ID.
- Delete Post
- Deletes the post along with its comments.
- Create Comment
- Fields: Author, Timestamp, Content.
- Comments are associated with posts (No nested comments).
- Delete Comment
- Deletes a specific comment.
- Database: MariaDB
- Front-End: HTML, Optional Web Frameworks
- Back-End: Node.js with native SQL implementation
index.html
: The main entry point of the web application.db/
: Contains scripts for database schema and initialization.scripts/
: JavaScript files for handling front-end logic.server/
: Node.js server files with SQL queries for database interaction.styles/
: CSS files for styling the web application.
- The project should be developed incrementally with regular commits to a private GitHub repository.
- Share the repository with dojinchoi@changwon.ac.kr for review and bonus points.
- Ensure to push commits periodically to demonstrate development progress.
- Compress the entire project into a single file and submit it on eCampus.
- Include a
Readme.md
file with detailed instructions on setting up and running the application.
-
Database Setup:
- Set up a MariaDB database.
- Run the provided SQL scripts to create the necessary tables.
-
Server Setup:
- Navigate to the
server/
directory. - Install dependencies:
npm install
. - Start the server:
node server.js
.
- Navigate to the
-
Accessing the Application:
- Open
index.html
in a web browser to access the application.
- Open
I had a fun experience creating a bulletin board :)