The Books app is a project developed to manage library resources efficiently,
combining a Flask API server with Flask-SQLAlchemy on a SQLite database for the backend,
and HTML with JavaScript for the frontend.
...
App Package Modules:
init.py: Initializes app configurations and instances.
routes.py: Contains server endpoints.
models.py: Implements SQLAlchemy models, including relationships, join tables, class initialization, and instance methods.
auth.py: Handles authentication, including signup, login, and endpoint protection logic.
image_handler.py: Manages image-related tasks such as extension validation, resizing, saving, and secure file naming.
utils.py: Utility functions for various tasks.
Implementations & Features:
Run Configuration: Configures the app for development or production environments.
Flask-JWT: Implements JWT-based authentication for protected endpoints.
Protected Endpoints: Ensures certain endpoints are only accessible with a valid JWT token.
Protected URLs: Secures HTML pages, allowing only logged-in users to access them fully or redirecting them to the login page.
Stay Login: Manages JWT token expiration, automatically redirecting users to the login page when expired.
Real-Time User Account Deactivation & Token Expiry Handling: Ensures users are logged out immediately upon account deactivation or token expiration.
IC Logger: Logs login events to a log.txt file.
User Credentials Levels: Implements different levels of user credentials, including customer, desk, admin, and root.
Custom App Alert Messages: Provides customized alert messages for user interactions.
Browser Alert: Confirms user account deletion.
User Input Validation: Validates user input both on the server and client sides, particularly in the signup and add_book features.
Toastify: Displays notifications, particularly in the add book feature.
Favicon: Includes a favicon for the web app.
Responsive App Icon: Provides a responsive app icon that navigates to the home page.
Unit Tests: Includes unit tests, particularly for the root superuser.
Skills Demonstrated:
The Books app showcases proficiency in Flask for backend development and HTML/JavaScript for frontend development.
As a junior developer, this project has allowed me to gain hands-on experience with these technologies while implementing various features and best practices.