I noticed that my colleagues were having difficulty managing their operational shifts, so I developed this app to streamline the process. With it, users can see the remaining shifts available for each day and fill the necessary slots, much like selecting seats in a cinema. As the slots are filled, they become unavailable to other users.
- 🚀 Dynamic Shift Management - Easily manage shifts with a system that updates in real-time as users select and fill available slots.
- 🎨 User-Friendly Interface - Designed to be intuitive and easy to use, making shift management seamless.
- 🔄 Real-Time Updates - Ensures accurate and up-to-date shift availability as changes happen instantly.
- ⚡ Built with Chakra UI & Next.js - A robust, scalable, and visually appealing application.
- 📊 Custom Google Sheets Database - A simple yet effective backend for storing and managing shift data.
- Frontend: Next.js, tailwindcss
- Backend: MongoDB as database with prisma ORM
- Hosting: Vercel / Hostinger
- Node.js installed (>= 16.0.0)
-
Clone the repository
git clone https://github.com/italomagno/accre-app.git cd accre-app -
Install dependencies
npm install # or yarn install -
Set up environment variables
- Create a
.env.localfile in the root directory - Add your Google Sheets API credentials and any other necessary environment variables
- Create a
-
Run the application
npm run dev # or yarn dev -
Access the app
- Open http://localhost:3000 in your browser
- View available shifts on the calendar-like interface.
- Select an open slot to book your shift.
- The slot is immediately updated and locked for other users.
- Admins can manage shifts directly from the Google Sheets backend.
To deploy the application, use Vercel:
npm run build
npm run startOr deploy directly via Vercel’s dashboard by linking the repository.
Contributions are welcome! Feel free to fork this repo, submit pull requests, or report issues.
This project is licensed under the MIT License. See LICENSE for more details.
For any questions or support, reach out via GitHub or email: your.email@example.com.