This project is a forum application built using the 3-tier architecture. It allows users to register, log in, ask questions, and provide answers. The app demonstrates full-stack development with a Node.js and Express backend and a React frontend.
- User Registration and Authentication
- Categories for Questions
- Create, Read, and Display Questions
- Submit and Display Answers
- Logout Functionality
- Node.js
- Express.js
- MongoDB (with Mongoose for ODM)
- React
- React Router
- CSS (Modular CSS for styling)
- Axios for HTTP requests
- Git & GitHub for version control
- Node.js (v14+)
- MongoDB (installed locally or using an online service like MongoDB Atlas)
# Clone the frontend repository
git clone https://github.com/kevinfrayed-knot/Project4-Frontend-React-App.git
# Clone the backend repository
git clone https://github.com/kevinfrayed-knot/project4-backend-server.git
- Navigate to the backend folder:
cd project4-backend-server
- Install dependencies:
npm install
- Set up environment variables:
Create a
.env
file with the following:PORT=8080 MONGO_URI=your-mongodb-connection-string JWT_SECRET=your-jwt-secret
- Start the server:
The server will run on:
npm start
- Local Development:
http://localhost:8080
- Production:
https://project4-backend-server.onrender.com
- Local Development:
- Navigate to the frontend folder:
cd Project4-Frontend-React-App
- Install dependencies:
npm install
- Start the frontend app:
The app will run on:
npm start
- Local Development:
http://localhost:3000
- Production:
https://kevinfrayed-knot.github.io/Project4-Frontend-React-App/
- Local Development:
- Register a new user.
- Log in with your credentials.
- View categories in the sidebar.
- Select a category to view related questions.
- Ask a new question by clicking the "New Question" button.
- Submit answers to existing questions.
- Log out to end your session.
- As a new user,
- I want to register with my username and password,
- So that I can log in and participate in the forum.
- As a logged-in user,
- I want to view a list of categories,
- So that I can select a category to see related questions.
- As a logged-in user,
- I want to submit answers to questions,
- So that I can help others and contribute to the community.
- Frontend Repository: Project4-Frontend-React-App
- Backend Repository: project4-backend-server
+-----------------------------------------------------------+
| Navbar (New Category | New Question | Logout) |
+-----------------------------------------------------------+
| Sidebar (Categories) | Main Content Area |
|------------------------|----------------------------------|
| - General | [Question List or New Question] |
| - Web Development | |
| - HTML | |
| - CSS | |
| - JavaScript | |
| - Node.js | |
+------------------------+----------------------------------+
- Navbar: Contains "New Category", "New Question", and "Logout" links.
- Sidebar: Displays a list of categories.
- Main Content Area: Displays questions, question details, or forms depending on user interaction.