Coder Social home page Coder Social logo

vivek-tate / botanicallens Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 72.72 MB

The Botanical Lens project, is a plant classification website where users can post sightings of rare and seasonal plants. This platform allows people to track and study these plants, facilitating better understanding and research.

License: GNU Lesser General Public License v2.1

JavaScript 30.61% CSS 5.00% EJS 64.38%
botanical-digitization chat-application client-server indexeddb mongodb nodejs web-development website

botanicallens's Introduction

Botanical Lens

Plant Recognition Web Application

Project Overview

Botanical Lens is a progressive web application designed to help users record and identify plants. Users can add new plant sightings, view plants added by themselves or other users, and comment on sightings. The application leverages Node.js, Express, MongoDB, and integrates with the DBPedia knowledge graph for plant identification.

Features

  • View Plants: Sorted by date/time seen and identification status. Optionally sort by distance.
  • Add Plant Sightings: Includes date/time, location, description, size, characteristics, identification, photo, and user's nickname.
  • Plant Details & Chat: Detailed view with public chat for each sighting, allowing real-time discussions.
  • Offline Support: Create and manage sightings and chats while offline, with data synchronization upon reconnection.

Demo

Watch the demo video here.

Initial Wireframe

View the initial wireframe here.

Installation and Setup

Prerequisites

  • Node.js (version 14.x or higher)
  • MongoDB (local or remote instance)

Steps to Run the Application

  1. Clone the repository:

    https://github.com/Vivek-Tate/BotanicalLens.git
    cd TeamMsc12
  2. Move to the solution folder:

    cd solution
  3. Install the dependencies:

    npm install
  4. Start the application:

    npm start
  5. Access the application: Open your browser and navigate to http://localhost:3000.

Code Structure

Web Application

  • Frontend: EJS, JavaScript, HTML5, CSS
  • Backend: Node.js, Express
  • Real-time Chat: Socket.io
  • Database: MongoDB for plant and chat data, IndexedDB for offline storage

Key Functionalities

  1. Adding Plant Sightings: Form to submit plant details, location, photo, and identification status.
  2. Viewing Plant Sightings: List and detail view with sorting and filtering options.
  3. Chat System: Real-time chat for each plant sighting, with offline message support.
  4. Offline Functionality: Store new sightings and chats locally, sync when online.

DBPedia Integration

  • Fetch plant information using SPARQL queries.
  • Display common name, scientific name, description, and URI from DBPedia in the UI.

Documentation and Code Quality

  • Inline Comments: Descriptions within the code for clarity.
  • Higher-level Documentation: Detailed comments and documentation files explaining the codebase.
  • GitHub Commit History: Track the progress and contributions on GitHub.

Screenshots and Videos

  • Include screenshots or a video demo in the <MainDirectory>/Screenshots folder.

License

See the LICENSE file for details.


Feel free to reach out via the project's GitHub repository for any issues or contributions. Enjoy exploring BotanicalLens!

botanicallens's People

Contributors

atharva2109 avatar vivek-tate avatar rain433 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.