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.
- 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.
Watch the demo video here.
View the initial wireframe here.
- Node.js (version 14.x or higher)
- MongoDB (local or remote instance)
-
Clone the repository:
https://github.com/Vivek-Tate/BotanicalLens.git cd TeamMsc12
-
Move to the solution folder:
cd solution
-
Install the dependencies:
npm install
-
Start the application:
npm start
-
Access the application: Open your browser and navigate to
http://localhost:3000
.
- 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
- Adding Plant Sightings: Form to submit plant details, location, photo, and identification status.
- Viewing Plant Sightings: List and detail view with sorting and filtering options.
- Chat System: Real-time chat for each plant sighting, with offline message support.
- Offline Functionality: Store new sightings and chats locally, sync when online.
- Fetch plant information using SPARQL queries.
- Display common name, scientific name, description, and URI from DBPedia in the UI.
- 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.
- Include screenshots or a video demo in the
<MainDirectory>/Screenshots
folder.
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!