Listing-Hub is a full-stack web application designed to allow users to create, view, and manage listings (products, services, real estate, etc.). It is built using modern web development technologies with a RESTful API architecture and follows the MVC (Model-View-Controller) pattern to ensure a scalable and maintainable codebase.
Check out the live demo of the project here: Live Demo
- User Authentication: Secure login and signup system with session management.
- RESTful API: All listings are created, updated, and deleted via RESTful API endpoints.
- CRUD Operations: Full functionality for Creating, Reading, Updating, and Deleting listings.
- Pagination: Efficient pagination for listing large datasets.
- Search: Users can search listings by category, location, and other attributes.
- Responsive Design: The app is mobile-friendly with a modern and intuitive UI.
- MVC Architecture: Separation of concerns between the business logic, data access, and user interface.
- Data Validation: Ensure integrity of data with server-side validation.
- Error Handling: Graceful error handling across the app.
- Node.js: JavaScript runtime environment for building server-side applications.
- Express.js: Fast, unopinionated, minimalist web framework for Node.js.
- MongoDB: NoSQL database for storing listings and user data.
- Mongoose: ODM (Object Data Modeling) library for MongoDB and Node.js.
- HTML5, CSS3: For structuring and styling the web app.
- Bootstrap / Tailwind CSS: For responsive, mobile-first design.
- RESTful APIs: To perform CRUD operations on listings and user management.
- Node.js and npm
- MongoDB
-
Clone the repository:
git clone https://github.com/Shaik-Nagur-Basha/listing-hub.git
-
Install server dependencies:
cd listing-hub npm install
-
Set up environment variables: Create a
.env
file in the root directory and add the following:CLOUD_NAME=<cloud name> from "https://cloudinary.com" CLOUD_API_KEY=<cloud API KEY> from "https://cloudinary.com" CLOUD_API_SECRET=<cloud API SECRET> from "https://cloudinary.com" MAP_TOKEN=<map token> from "https://www.here.com" ATLASDB_URL=<mongodb+srv://<username>:<password>@cluster0.sat8w.mongodb.net/<database-name>?retryWrites=true&w=majority&appName=Cluster0> from "https://www.mongodb.com/products/platform/atlas-database" from "https://www.mongodb.com/products/platform/atlas-database" SECRET=<Random String>
-
Run the project:
node app.js
-
Access the app: Open your browser and visit
http://localhost:8080/listings
.
listing-hub/
│
├── controllers/ # API controllers
├── models/ # Database models
├── routes/ # API routes
├── middleware/ # Middleware for authentication, etc.
├── init/ # initial data
├── public/ # Static files (images, etc.)
├── utils/ # Utility functions
├── views/ # Views (for server-side rendering, if any)
└── app.js # Main file
Contributions are welcome! Please fork this repository and submit a pull request for any features, improvements, or bug fixes.
This project is licensed under the MIT License - see the LICENSE file for details.