Skip to content

Repository files navigation

React Native Expo Node.js Prisma Codemagic

ASync Mobile App

ASync is a modern, cross-platform mobile application designed to help college students and educators seamlessly manage academic resources, track assignments, and organize deadlines. Built with a stunning dark-mode "Deep Focus" aesthetic, the app integrates robust role-based access control, a sleek React Native interface, and a powerful Node.js/PostgreSQL backend.


Screenshots

Auth & Onboarding

Student Dashboard

Admin / Teacher Panel

Demo

Watch our app in action: Watch Demo Video on Google Drive


Key Features

  • Role-Based Workflows: Distinct, optimized interfaces for STUDENT and TEACHER (Admin) roles.
  • Coursera Sync: Automatically fetches assignment data from Coursera ICS calendar URLs and syncs it to student cohorts via backend cron jobs.
  • Automated CI/CD: Zero-touch deployments using GitHub Actions for Android .apk builds and Codemagic for iOS .ipa builds.
  • Smart Assignment Tracking: Students view timeline-grouped due dates with native local push notification reminders.
  • Notes Management: Teachers can upload PDF resources directly to Cloudinary. Students view them via a native integrated PDF viewer.
  • Deep Focus UI: Custom, semantic dark-mode palette designed for low eye strain and maximum productivity, complete with dynamic island mockups for the landing page.

Tech Stack

Frontend & UI

  • Framework: React Native, Expo SDK, Expo Router
  • State & Styling: Redux Toolkit, NativeWind (Tailwind CSS)
  • Forms & Icons: Formik, Yup, Lucide Icons

Backend & API

  • Runtime: Node.js, Express
  • Database: PostgreSQL with Prisma ORM
  • Auth & Storage: JWT, Cloudinary, Multer
  • Jobs: Node Cron, ical.js (for calendar parsing)

DevOps & CI/CD

  • Android Build: GitHub Actions (build-android-apk.yml)
  • iOS Build: Codemagic (codemagic.yaml)

Repository Structure

.
├── Backend/            # Node.js/Express server, Prisma ORM, Cron jobs
├── Frontend/           # React Native Expo app, Redux store, NativeWind UI
├── LandingPage/        # Modern React/Vite landing page showcasing the app
├── .github/workflows/  # Automated Android build pipelines
├── codemagic.yaml      # Automated iOS build pipelines
└── README.md

Getting Started (Development)

1. Backend Setup

git clone https://github.com/Naren456/Async.git
cd Async/Backend
npm install

Configure your .env file with your DATABASE_URL, JWT_SECRET, and Cloudinary credentials.

npx prisma migrate dev
npm run dev

2. Frontend Setup

cd ../Frontend
npm install
npx expo start

Scan the QR code with the Expo Go app on your phone, or press i to open in the iOS simulator.

3. Landing Page Setup

cd ../LandingPage
npm install
npm run dev

Building for Production

We use automated CI/CD pipelines to build the production binaries.

Android (.apk)

Pushing code to the main branch will automatically trigger the GitHub Action (build-android-apk.yml) which runs an EAS local build and publishes the resulting APK as a GitHub Release artifact.

iOS (.ipa)

Building an iOS app usually requires a Mac. We bypass this using a dedicated pipeline!

  1. Codemagic: Our codemagic.yaml automatically provisions a mac_mini_m2, injects the environment variables, and generates an unsigned app.ipa.
  2. LambdaTest: For physical device validation without owning an iPhone, we stream the .ipa to cloud devices via LambdaTest Accessibility Scanner.
  3. Physical Installation: If you have an iPhone, see our iOS Installation Guide to sideload the app using AltStore without a 7-day expiration!

(For technical details on the headless iOS compilation architecture, see build_iomac.md).


Contributing

Contributions, issues, and feature requests are welcome! Feel free to check the issues page.

License

This project is open-sourced under the MIT License.

About

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages