A comprehensive platform for managing and booking storage items across multiple locations. This application allows users to browse available storage options, make reservations, and manage their bookings through an intuitive interface.
- Item Management: Browse and book storage items with real-time availability
- User Authentication: Secure login with role-based access control
- Multi-language Support: Complete English and Finnish localization
- Admin Dashboard: Comprehensive tools for inventory and order management
- Responsive Design: Seamless experience across desktop and mobile devices
- React 18 with TypeScript for type-safe component development
- Vite for fast development and optimized builds
- Redux Toolkit for centralized state management
- UI Components: Shadcn/UI with Tailwind CSS for styling
- Axios for API requests with automatic authentication
- React Router for client-side routing
- Cypress for end-to-end testing
- NestJS for robust, modular API development
- TypeScript for type safety across the application
- Supabase for PostgreSQL database, authentication and storage
- Row-Level Security for fine-grained data access control
- Email Integration with nodemailer and React Email templates
Comprehensive documentation is available in the docs
directory:
- Getting Started Guide - Setup instructions
- Project Overview - Architectural overview
- Project Structure - Directory organization
- Lessons Learned - Technical insights and knowledge gained
- API Integration - Backend communication
- State Management - Redux guide
- Routing - Navigation system
- Styling Guide - UI design system
- Database Schema - Data structure
- API Reference - API endpoints
- Supabase Setup - Configuration
- Security - Authentication and authorization
- Development Cycle - Git workflow
- Testing - Testing practices
- Deployment - Production deployment
- Contribution Guide - How to contribute
- Node.js: v18 or higher
- npm: Comes with Node.js
- Supabase Account: Free tier works for development
- Azure Account: For deployment (we use student account)
- Clone the repository:
git clone https://github.com/Ermegilius/FullStack_Storage_and_Booking_App.git
cd FullStack_Storage_and_Booking_App
- Install dependencies:
npm run install-all
- Set up environment variables:
cp .env.local
# Edit .env.local with your credentials
- Run the application:
npm run dev
- Access the application:
- Frontend: http://localhost:5180
- Backend API: http://localhost:3000
FullStack_Storage_and_Booking_App/
├── backend/ # NestJS application
│ ├── src/ # Source code
│ └── dbSetStatements/ # Database setup SQL
├── frontend/ # React application
│ └── src/ # Source code
└── docs/ # Documentation
└── developers/ # Developer guides
For a more detailed breakdown, see the Project Structure documentation.
We follow a Git Flow-inspired branching strategy:
main
: Production-ready codedevelop
: Integration branchfeature/*
: For new featuresdeployment
: For deployment configuration
See the Development Cycle guide for details.
Contributions are welcome! Please read our Contribution Guide before submitting changes.
This project is licensed under the FullStack Storage and Booking App Non-Commercial License v1.0.
See the LICENSE file for details.
Commercial use is prohibited without a separate agreement.
To request permission for commercial use or to contact the team, please open an issue or reach out via our GitHub organization page: [email protected]