TIUE Mobile App is a comprehensive mobile application for students and administration of Tashkent International University of Education (TIUE). The application provides convenient access to academic information, news, schedules, and other university services.
- ๐ Authentication System - secure login for students and administrators
- ๐ฐ University News - latest news with images and events
- ๐ Class Schedule - personalized schedule for each student
- ๐ฅ User Management - administrative panel for managing students
- ๐ Dark Theme - support for light and dark themes with toggle
- ๐ฑ Responsive Design - optimization for different screen sizes
- ๐ Data Synchronization - automatic information updates
- React Native
0.79.5- cross-platform mobile development - Expo
~53.0.22- rapid development platform - TypeScript - typed JavaScript
- Redux Toolkit - application state management
- React Navigation - screen navigation
- Expo Router - file-based routing
- React Native Reanimated - smooth animations
- Expo Linear Gradient - gradient backgrounds
- Django
4.2.16- Python web framework - Django REST Framework - API for mobile application
- Python
3.12.6- server-side logic - MariaDB/MySQL - database
- Django CORS Headers - CORS support
Make sure you have installed:
- Node.js (version 22.19.0 or higher) - Download
- npm (version 11.6.0 or higher) - comes with Node.js
- Expo CLI (version 0.24.21 or higher) - install globally:
npm install -g @expo/cli
- Python (version 3.12.6 or higher) - Download
- MariaDB/MySQL - database
- Git - Download
git clone https://github.com/scrollDynasty/tiueapp.git
cd tiueapp# Install dependencies
npm install
# Or with yarn
yarn install
โ ๏ธ Important Note: This project uses specific Metro bundler configurations for compatibility. If you encounter Metro-related errors, thepackage.jsonincludesoverridessection that forces compatible versions of Metro packages. Do not remove theoverridessection without testing.
# Navigate to backend folder
cd backend
# Create virtual environment
python -m venv venv
# Activate virtual environment
# On Windows:
venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate
# Install Python dependencies
pip install -r requirements.txt
# Apply database migrations
python manage.py migrate
# Create superuser (administrator)
python manage.py createsuperuser
# Return to root folder
cd ..# In backend folder with activated venv
cd backend
python manage.py runserver
# Server will be available at: http://localhost:8000# In project root folder
npx expo start
# Or to start with cache clearing
npx expo start --clearAfter running npx expo start, choose one of the options:
-
๐ฑ Expo Go (for quick testing):
- Install Expo Go on your phone
- Scan the QR code from terminal
-
๐ค Android emulator:
npx expo run:android
-
๐ iOS simulator (macOS only):
npx expo run:ios
-
๐ Web version:
npx expo start --web
tiueapp/
โโโ ๐ฑ app/ # React Native application
โ โโโ (auth)/ # Authentication screens
โ โโโ (tabs)/ # Main app tabs
โ โโโ admin/ # Administrative screens
โ โโโ news/ # News screens
โ โโโ login.tsx # Login screen
โโโ ๐จ components/ # Reusable components
โโโ ๐ฏ constants/ # Constants (colors, styles)
โโโ ๐ contexts/ # React contexts (themes)
โโโ ๐ช hooks/ # Custom hooks
โโโ ๐ช store/ # Redux store and slices
โโโ ๐ง services/ # API services
โโโ ๐ types/ # TypeScript types
โโโ ๐จ styles/ # Global styles
โโโ ๐ผ๏ธ assets/ # Images, fonts
โโโ ๐๏ธ backend/ # Django backend
โโโ authentication/ # Authentication
โโโ users/ # User management
โโโ news/ # News
โโโ schedule/ # Schedule
โโโ groups/ # Study groups
โโโ tiuebackend/ # Django settings
# Start in development mode
npm start
# Run on Android
npm run android
# Run on iOS
npm run ios
# Run in web browser
npm run web
# Code linting
npm run lint
# Reset project to initial state
npm run reset-project# Start development server
python manage.py runserver
# Create migrations
python manage.py makemigrations
# Apply migrations
python manage.py migrate
# Create superuser
python manage.py createsuperuser
# Open Django shell
python manage.py shell- ๐ Adaptive Theme - support for light and dark themes
- ๐ฑ Mobile Design - mobile device optimization
- ๐ญ Smooth Animations - using React Native Reanimated
- ๐จ Modern UI - Material Design principles
- โฟ Accessibility - accessibility features support
Create a .env file in the backend/ folder:
SECRET_KEY=your-secret-key-here
DEBUG=True
ALLOWED_HOSTS=localhost,127.0.0.1
DB_ENGINE=django.db.backends.mysql
DB_NAME=tiueapp_db
DB_USER=your_db_user
DB_PASSWORD=your_db_password
DB_HOST=localhost
DB_PORT=3306Backend provides the following API endpoints:
POST /api/auth/login/- LoginPOST /api/auth/logout/- LogoutGET /api/news/- News listGET /api/schedule/- ScheduleGET /api/users/- User management (admin only)
# Run React Native tests
npm test
# Run Django tests
cd backend
python manage.py testIf you encounter errors like Package subpath is not defined by "exports", this is typically a Metro version conflict. The project includes specific version overrides in package.json:
"overrides": {
"metro": "0.82.5",
"metro-cache": "0.82.5",
"metro-config": "0.82.5",
"metro-transform-worker": "0.82.5"
}Solution steps:
- Delete
node_modulesandpackage-lock.json - Run
npm install - Ensure all Metro packages are version
0.82.5
-
Error:
ERR_PACKAGE_PATH_NOT_EXPORTED- Solution: Follow Metro troubleshooting steps above
-
Error: Expo CLI version conflicts
- Solution: Update to Expo CLI
0.24.21+withnpm install -g @expo/cli@latest
- Solution: Update to Expo CLI
-
Error: Node.js compatibility issues
- Solution: Use Node.js
22.19.0+and npm11.6.0+
- Solution: Use Node.js
# Build APK
npx expo build:android
# Or create standalone app
eas build --platform android# Build for iOS (requires macOS)
npx expo build:ios
# Or with EAS Build
eas build --platform ios- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License. See the LICENSE file for details.
- Developer: scrollDynasty
- University: TIUE (Tashkent International University of Education)
- Contacts:
- ๐ง Email: ymarumar502@gmail.com
- ๐ฌ Telegram: @scroll_be
If you have questions or issues:
- ๐ Create an Issue
- ๐ง Email: ymarumar502@gmail.com
- ๐ฌ Telegram: @scroll_be
Made with โค๏ธ for TIUE students