A web application for managing departments and employees with real-time updates, built using Flutter, FastAPI, and PostgreSQL.
REQUIREMENTS
* Flutter
* PostgreSQL & PgAdmin
* FastAPI
HOW TO SETUP
Unfortunately, my front-end and back-end somehow created 2 seperate local repositories, so to avoid further complications in the submission period, i decided to seperate them in 2 seperate reomte respositories.
Back-end
For getting the fastapi backend, open a terminal and run:
'git clone https://github.com/ShinanTc/flutter-assignment-fast-api-backend.git'
After cloning, enter into the folder and open that folder in a bash. Then run this command to activate the virtual environment:
'source venv/Scripts/activate'
then, 'fastapi dev main.py' will start the server.
To avoid any unexpected issue it is always recommended to open the PgAdmin for running the database server.
Front-end
For getting the flutter client, open a terminal (preferably git bash) and run:
'git clone https://github.com/ShinanTc/flutter-assignment.git'.
After cloning, enter inside the folder. Make sure your fast api server is running and Enter inside the project folder, open a terminal and run:
'flutter run' and take select a build method (Windows/Browser...).
Now you can test all the functionalities.
NOTE
Due to some uncertainty issues, minimal flutter experience, absolute beginner in fastapi and for faster submission I had to compromise the below conditions:
* Unfortunately, The condition you have put forward where 'Department cannot be deleted when there are employees assigned to it.' couldnt be done due to the above mentioned reasons.
* Couldn't do maximum coding optimisations on architectures and conventions
* Tools like providers and Blocs weren't used in this project
* Error handling modals isnt built, you have to rely on the running terminal for that
* No data validations included
* This app purely funtion oriented on the provided conditions, you can just check them, & that's pretty much it. It does not handle all the unexpected situations and events.
I had to put a lot of effort simultaneously in learning and developing all the 3 technologies at the same time, so i request an apology in advance for any mistakes or inconvenience caused. Feel free to reach out for further guidance. I appreciate your your patience. Thank you so much 💓