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