Skip to content

Repository files navigation

Olater - Flutter & Node.js Application

Olater is a full-stack mobile application built with Flutter for the frontend and Node.js for the backend. It features Firebase authentication (including Google Sign-In) and MongoDB for data storage.

🚀 Tech Stack

Frontend

Backend


📂 Project Structure

olater/
├── android/                # Android native project
├── ios/                    # iOS native project
├── lib/                    # Flutter source code
│   ├── core/               # App-wide constants, themes, utils
│   ├── features/           # Feature-based modules (auth, home, etc.)
│   └── main.dart           # App entry point
├── backend/                # Node.js backend
│   ├── controllers/        # Business logic
│   ├── models/             # Mongoose schemas
│   ├── routes/             # API endpoints
│   ├── server.js           # Server entry point
│   └── .env                # Environment variables (local only)
├── firebase.json           # Firebase configuration
└── pubspec.yaml            # Flutter dependencies

🛠️ Prerequisites

  • Flutter SDK: ^3.10.3
  • Node.js: Latest LTS version
  • MongoDB: A running local instance or MongoDB Atlas cluster
  • Firebase Project: Created in the Firebase Console

⚙️ Setup Instructions

1. Backend Setup

  1. Navigate to the backend folder:
    cd backend
  2. Install dependencies:
    npm install
  3. Create a .env file in the backend/ directory (use .env.example as a template):
    PORT=3000
    MONGO_URI=mongodb://localhost:27017/olater
  4. Firebase Admin Setup:
    • Download your serviceAccountKey.json from the Firebase Console (Project Settings > Service Accounts).
    • Place it in the backend/ folder.

2. Frontend Setup

  1. From the root directory, install Flutter dependencies:
    flutter pub get
  2. Firebase Configuration:
    • Run flutterfire configure (if you have FlutterFire CLI) or manually download:
      • google-services.json for Android (android/app/)
      • GoogleService-Info.plist for iOS (ios/Runner/)
    • Generate lib/firebase_options.dart. Use lib/firebase_options.dart.example as a template if needed.
  3. Backend API URL:
    • Update the baseUrl in lib/features/auth/presentation/provider/auth_provider.dart to point to your machine's IP address (needed for physical device testing).

🏃 Running the Project

Start the Backend

cd backend
node server.js

Start the Flutter App

flutter run

🔒 Security Note

Sensitive files are ignored in Git to prevent leaks:

  • backend/.env
  • backend/serviceAccountKey.json
  • lib/firebase_options.dart
  • **/google-services.json
  • **/GoogleService-Info.plist

Always use the provided .example files as templates when setting up the project on a new machine.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages