A React Native application to track and manage attendance efficiently. The app allows users to mark attendance, view attendance records, and analyze trends. Built with React Native, it ensures a smooth and responsive experience across both Android and iOS platforms.
-
π Track Attendance: Easily mark attendance for different classes or events.
-
π€ AI Scheduling: Generate your time table instantly and optimize your schedule.(under development)
-
π Timetable Management: Create, edit, and manage class or event timetables effortlessly.
-
π Reminders & Alerts: Set alerts to remind you of low attendance.
-
βοΈ Cloud Sync (Optional): Sync data across multiple devices.
![]() |
![]() |
![]() |
|---|---|---|
![]() |
![]() |
![]() |
Ensure you have the following installed:
- Node.js (Latest LTS recommended) - Download
- React Native CLI or Expo CLI
- Android Studio (For Android emulator) / Xcode (For iOS development)
git clone https://github.com/yourusername/attendance-manager.git
cd attendance-manager npm install
# or
yarn install- For Android:
npx react-native run-android- For iOS (Mac users only):
npx react-native run-ios- If using Expo:
npx expo start- Go to Firebase Console.
- Click "Add project", enter a project name, and follow the setup steps.
- Once created, go to Project Settings and note down:
- Project Number
- Project ID
- Storage Bucket
- In Firebase Console, go to Project Settings > General.
- Under Your apps, click Add App and select Android.
- Enter your package name (e.g.,
com.yourappname). - Follow the steps and download the
google-services.jsonfile.
- In Firebase Console, go to Project Settings > Service Accounts.
- Set up authentication via OAuth 2.0.
- Obtain API keys and OAuth client IDs.
- Replace placeholders in
google-services.jsonwith actual values.
- Place
google-services.jsoninside your React Native project'sandroid/app/directory. - Open
android/build.gradleand add:dependencies { classpath("com.google.gms:google-services:4.3.10") // Make sure it's the latest version }
If you want to use the automated APK release GitHub Actions workflow, you need to add the following secrets to your GitHub repository:
- Go to your GitHub repository Settings > Secrets and variables > Actions.
- Add the following Repository secrets:
Keystore Secrets:
RELEASE_KEYSTORE_BASE64: Base64 encoded keystore file (.jks)RELEASE_STORE_PASSWORD: Keystore store passwordRELEASE_KEY_ALIAS: Key alias nameRELEASE_KEY_PASSWORD: Key password
Firebase Secrets:
GOOGLE_SERVICES_BASE64: Base64 encodedgoogle-services.jsonfile
Environment Secrets:
GOOGLE_WEB_CLIENT_ID: Google Web Client ID for authenticationGOOGLE_GEMINI_API_KEY: Google Gemini API key for AI features
To create base64 encoded files:
Quick Method (Recommended):
# Run the helper script from project root
./scripts/generate-secrets.shManual Method:
# For keystore file
base64 -i your-keystore-file.jks | pbcopy # macOS
base64 -i your-keystore-file.jks | xclip -selection clipboard # Linux
# For google-services.json
base64 -i android/app/google-services.json | pbcopy # macOS
base64 -i android/app/google-services.json | xclip -selection clipboard # LinuxWorkflow Triggers:
- The workflow triggers when a PR is merged to
mainwith areleaselabel - Or when a PR title contains
[release] - Version bumping is automatic based on PR title:
[major],[minor], or defaults to patch
- React Native - Frontend framework
- Redux - State management
- AsyncStorage / Firebase - Data persistence
- React Navigation - Seamless app navigation
- For more, refer to labels in repo's description.
-
Fork the repository.
-
Select or create an issue to work on.
-
Create a branch in your fork:
git checkout -b feature/#<issue_number> -
Write meaningful commit messages:
git commit -m "feat: add AI scheduling option (fixes #42)"Types:
feat,fix,docs,style,refactor,test,chore -
Work on a single issue per PR.
-
Push and create a PR
This project is licensed under the MIT License.
For issues or suggestions, create a GitHub issue or contact me at [[email protected]].





