This project is a task and process management application designed to streamline workflows by assigning tasks to users with specific roles, such as admin
, validator
, and contributor
. The application utilizes Firebase for authentication and Firestore for data storage, ensuring scalability and reliability.
- React: For building the user interface.
- TypeScript: For static type checking and better developer experience.
- MobX: For state management.
- Firebase Authentication: For user authentication and management.
- Firestore: For real-time NoSQL database storage.
- Tailwind CSS: For styling.
- Vite: For fast builds and development server.
Before running the project, ensure you have the following installed:
- Node.js (v16 or later)
- npm or yarn
- Firebase Project set up with:
- Authentication enabled.
- Firestore database configured.
-
Clone the Repository:
git clone <repository-url> cd <project-directory>
-
Install Dependencies:
npm install # or yarn install
-
Set Up Firebase Configuration:
- Create a Firebase project at Firebase Console.
- Enable Authentication and Firestore.
- Generate a Firebase configuration file and replace the placeholder in the project’s
firebaseConfig.ts
file:const firebaseConfig = { apiKey: "YOUR_API_KEY", authDomain: "YOUR_AUTH_DOMAIN", projectId: "YOUR_PROJECT_ID", storageBucket: "YOUR_STORAGE_BUCKET", messagingSenderId: "YOUR_MESSAGING_SENDER_ID", appId: "YOUR_APP_ID", };
-
Run the Development Server:
npm run dev # or yarn dev
Open the app in your browser at
http://localhost:3000
.
.
├── src
│ ├── api # Firebase API configuration and utilities
│ ├── components # Reusable UI components
│ ├── pages # Page components for routing
│ ├── stores # MobX stores for state management
│ ├── styles # Global and component-specific styles
│ ├── types # TypeScript types and interfaces
│ └── utils # Helper functions
├── public # Static assets
├── package.json # Project dependencies and scripts
├── README.md # Project documentation
└── vite.config.ts # Vite configuration
-
Login/Sign Up:
- Admin, validator, and contributor roles are assigned based on user data stored in Firestore.
-
Role-Based Navigation:
- The application dynamically renders navigation options based on the logged-in user's role.
-
Task Management:
- Admins can create, assign, and update tasks.
- Validators review tasks and update their statuses.
- Contributors complete tasks assigned to them.
-
Start Development Server:
npm run dev
-
Build for Production:
npm run build
-
Run Tests:
npm run test
To deploy the project, you can use Firebase Hosting or any static hosting service.
-
Install Firebase CLI:
npm install -g firebase-tools
-
Login to Firebase:
firebase login
-
Initialize Firebase Hosting:
firebase init hosting
-
Build and Deploy:
npm run build firebase deploy
- Fork the repository.
- Create a new branch for your feature:
git checkout -b feature-name
- Commit your changes:
git commit -m "Description of changes"
- Push to your fork and create a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.
For any issues or questions, please contact the project maintainer at [email protected] or create an issue in the GitHub repository.