Skip to content

scrollDynasty/tiueapp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽ“ TIUE Mobile App

TIUE Logo React Native Expo Node.js npm Expo CLI Django Python

Mobile application for TIUE students and administration

๐Ÿ“ฑ About the Project

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.

โœจ Key Features

  • ๐Ÿ” 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

๐Ÿ—๏ธ Technology Stack

Frontend (React Native)

  • 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

Backend (Django)

  • 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

๐Ÿš€ Quick Start

Prerequisites

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

๐Ÿ“ฆ Installation

1. Clone the repository

git clone https://github.com/scrollDynasty/tiueapp.git
cd tiueapp

2. Frontend Setup (React Native)

# 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, the package.json includes overrides section that forces compatible versions of Metro packages. Do not remove the overrides section without testing.

3. Backend Setup (Django)

# 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 ..

๐ŸŽฎ Running the Application

Backend Server (Django)

# In backend folder with activated venv
cd backend
python manage.py runserver

# Server will be available at: http://localhost:8000

Frontend Application (React Native)

# In project root folder
npx expo start

# Or to start with cache clearing
npx expo start --clear

๐Ÿ“ฑ Mobile App Launch Options

After running npx expo start, choose one of the options:

  1. ๐Ÿ“ฑ Expo Go (for quick testing):

    • Install Expo Go on your phone
    • Scan the QR code from terminal
  2. ๐Ÿค– Android emulator:

    npx expo run:android
  3. ๐ŸŽ iOS simulator (macOS only):

    npx expo run:ios
  4. ๐ŸŒ Web version:

    npx expo start --web

๐Ÿ“‚ Project Structure

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

๐Ÿ› ๏ธ Available Commands

Frontend Commands

# 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

Backend Commands

# 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

๐ŸŽจ Design Features

  • ๐ŸŒ™ 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

๐Ÿ”ง Configuration

Environment Variables

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=3306

API Endpoints

Backend provides the following API endpoints:

  • POST /api/auth/login/ - Login
  • POST /api/auth/logout/ - Logout
  • GET /api/news/ - News list
  • GET /api/schedule/ - Schedule
  • GET /api/users/ - User management (admin only)

๐Ÿงช Testing

# Run React Native tests
npm test

# Run Django tests
cd backend
python manage.py test

๐Ÿ› ๏ธ Troubleshooting

Metro Bundler Issues

If 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:

  1. Delete node_modules and package-lock.json
  2. Run npm install
  3. Ensure all Metro packages are version 0.82.5

Common Issues

  • 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+ with npm install -g @expo/cli@latest
  • Error: Node.js compatibility issues

    • Solution: Use Node.js 22.19.0+ and npm 11.6.0+

๐Ÿ“ฑ Production Build

Android APK

# Build APK
npx expo build:android

# Or create standalone app
eas build --platform android

iOS App Store

# Build for iOS (requires macOS)
npx expo build:ios

# Or with EAS Build
eas build --platform ios

๐Ÿค Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

๐Ÿ“„ License

This project is licensed under the MIT License. See the LICENSE file for details.

๐Ÿ‘ฅ Team

  • Developer: scrollDynasty
  • University: TIUE (Tashkent International University of Education)
  • Contacts:

๐Ÿ“ž Support

If you have questions or issues:


Made with โค๏ธ for TIUE students

About

Cross-Platform University Mobile Application

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •