AquaBills is a comprehensive water billing management system designed to streamline the process of managing water consumption, billing, and customer information.
AquaBills utilizes modern web technologies for both the frontend and backend:
- React: A JavaScript library for building user interfaces.
- Chakra UI: A simple, modular and accessible component library for React.
- TypeScript: A statically typed superset of JavaScript.
- Vite: A fast frontend build tool that provides an extremely fast development experience.
- Python: A high-level programming language for general-purpose programming.
- Flask: A lightweight WSGI web application framework in Python.
- Appwrite: An open-source backend server for web and mobile developers, written in PHP and running on a Docker environment.
To get started with AquaBills, follow these steps:
-
Clone the repository:
git clone https://github.com/LwaziNcubeX/AquaBills.git cd AquaBills
-
Install frontend dependencies and start the development server:
cd frontend npm install npm run dev
-
Install backend dependencies and start the Flask server:
cd backend pip install -r requirements.txt python app.py
Once the servers are running, you can access AquaBills at http://localhost:5173
for the frontend and http://localhost:5000
for the backend.
Contributions are welcome! To contribute to AquaBills, please follow the guidelines outlined in CONTRIBUTING.md.
During project planning, I thought this would be a simple "in and out" job since i had chakra-ui on my side😂. I believed I would finish on time, but little did I know, I was just blinded by illusion. When I initially started the project, I had planned to use React.js and Chakra UI for the frontend. However, I then decided, "Why not use TypeScript so I can learn it while doing the project?"
Implementing TypeScript seemed like a great idea at first. I thought it would enhance the project's maintainability and catch errors early on. However, I quickly realized that TypeScript brought its own set of challenges. I wanted to modify code so i can use javascript but i knew that i will be wasting more time and js had its own challanges so i hadt to continue with typescript
Note: I will post a detailed blog post link about the challenges I faced while doing this project and more. ....
You can find me on various platforms:
- LinkedIn: LwaziNcubeX
- Twitter: @LwaziNcubeX
- Telegram: @LwaziNcubeX
Feel free to reach out to me on any of these platforms!
AquaBills is licensed under the GNU General Public License v3.0 (GPL-3.0).