Mini Message Board is a simple web application developed as part of The Odin Project's fullstack curriculum. This project serves as an introduction to fullstack development especially server-side domain, combining basic frontend and backend technologies to create a functional message board system with a clean, responsive user interface.
- Message board functionality with the ability to post and view messages
- Simple user identification system
- RESTful API for message handling
- Persistent data storage using MongoDB
- React.js with TypeScript
- Material UI
- Node.js with Express.js
- TypeScript for type-safe development
- MongoDB for database management
- Mongoose as the ODM (Object Document Mapper)
- Frontend deployed on Netlify
- Backend deployed on Fly.io
-
Message Board: Users can post messages and view all messages on the board.
-
User Identification: Implemented a simple system to allow users to set a username or post as "Anonymous". This is managed client-side using local storage.
-
User Interface: Utilized Material-UI components and custom styling to ensure a consistent look across devices.
-
API Integration: Developed a RESTful API with endpoints for fetching messages and posting new ones.
-
Database Integration: Integrated MongoDB to store and retrieve message data.
-
TypeScript Usage: Leveraged TypeScript in both frontend and backend for enhanced code quality and developer experience.
- Clone the repository
- Navigate to the project root and install dependencies
npm install
cd backend
npm install
- Start the backend server
npm run dev
- In a new terminal, start the frontend development server
cd ..
npm run dev
- Open your browser and visit
http://localhost:5173
- Implement real-time updates using WebSockets
- Add user authentication and authorization
- Introduce message threading and replies
- Implement message search functionality
This Mini Message Board project has been a valuable learning experience in fullstack development. Through building this application, I've gained practical insights into:
- Frontend Development: Using React with TypeScript to create a responsive user interface.
- Backend Architecture: Setting up an Express.js server to handle API requests.
- Database Integration: Implementing basic CRUD operations with MongoDB.
- API Development: Creating and consuming RESTful endpoints.
While this project is a starting point in the fullstack world, backend in particular. It has provided hands-on experience with connecting frontend and backend components, crafting the server-side of a fullstack application and creating RESTful endpoints as well as discovering database management and integration through ODM such as mongoose.