Skip to content

A web application for listing and managing various items, built with the NodeJS, ExpressJS, EJS & MongoDB stack for efficient and interactive user experience.

License

Notifications You must be signed in to change notification settings

Shaik-Nagur-Basha/Listing-Hub

Repository files navigation

Listing-Hub

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.

Demo

Check out the live demo of the project here: Live Demo

Features

  • 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.

Tech Stack

Backend:

  • 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.

Frontend:

  • HTML5, CSS3: For structuring and styling the web app.
  • Bootstrap / Tailwind CSS: For responsive, mobile-first design.

API:

  • RESTful APIs: To perform CRUD operations on listings and user management.

Installation

Prerequisites:

  • Node.js and npm
  • MongoDB

Steps:

  1. Clone the repository:

    git clone https://github.com/Shaik-Nagur-Basha/listing-hub.git
  2. Install server dependencies:

    cd listing-hub
    npm install
  3. 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>
  4. Run the project:

    node app.js
  5. Access the app: Open your browser and visit http://localhost:8080/listings.

Folder Structure

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

Contributing

Contributions are welcome! Please fork this repository and submit a pull request for any features, improvements, or bug fixes.

License

This project is licensed under the MIT License - see the LICENSE file for details.


About

A web application for listing and managing various items, built with the NodeJS, ExpressJS, EJS & MongoDB stack for efficient and interactive user experience.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published