BAX is a web application designed to create a community for like-minded individuals who share an interest in plants. The application is created using Next.js, Prisma, TypeScript, TailwindCSS, AWS and PostgresQL.
Some key features of BAX (PDEX) web application include:
- User authentication and authorization through OAuth/NextAuth
- User profile management
- Community's submitted plant catalog with search and filtering options (two approaches)
- Plant collection / wishlist and favorites functionality
- Community forums for plant enthusiasts to connect and share knowledge through comments and more
- Social media-esque submission of personal plants utilizing AWS.
The BAX (PDEX) web application is built using the following technologies:
- Next.js: A React framework for building server-side rendered and static websites
- Prisma: A modern database toolkit for TypeScript and Node.js
- TypeScript: A statically typed superset of JavaScript
- TailwindCSS: A utility-first CSS framework
- PostgresQL: A powerful, open-source relational database management system
Regarding the two search bar components:
NavBarSearchbarMemoizememoizes each input into the search bar to fetch data from backend as its being typed in. It caches the data in a map to reduce the need to fetch the same result multiple times, however this is expensive if there's no debounce and if the user chooses prefers to type out the whole search term or choose to delete certain chars. Duplicating results as the user types a more specific term.NavBarSearchbarPrefetchis a fix to the initial problem by only fetching and making sure the results are related to the search bar's content. This decreases the unnecessary calls which would occur if the user typed in more specific terms/more keys. It also reduces the calls if the user were to choose to delete characters but the results are already fetched. This has a limit on the return and can be compounded with loss of suggestions but this can be improved on in the future. This approach to fetching relevant search data as suggestions is prefered and cost-saving.
To get started with the BAX (PDEX) web application, follow these steps:
- Clone the repository:
git clone https://github.com/alexdoes/pdex.git - Navigate to the project directory:
cd pdex - Install the dependencies:
npm installoryarn install - Set up the database connection in the
.envfile (postgres database, OAuth key) - Run the development server:
npm run devoryarn dev - Open http://localhost:3000 in your browser
We welcome contributions to the BAX (PDEX) web application! If you'd like to contribute, please follow these guidelines:
- Fork the repository
- Create a new branch for your feature or bug fix:
git checkout -b feature/your-feature-nameorgit checkout -b bugfix/your-bug-fix-name - Make your changes and commit them:
git commit -m "Add your commit message" - Push your branch to your forked repository:
git push origin feature/your-feature-nameorgit push origin bugfix/your-bug-fix-name - Open a pull request on the main repository
The BAX (PDEX) web application is open source and available under the MIT License.
If you have any questions or need further assistance, feel free to contact our support team at baxreport@gmail.com.


