Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Emmanuel-Mtz-777/My-Personal-Portfolio/llms.txt

Use this file to discover all available pages before exploring further.

C-Ita is an Android application developed by Emmanuel Martínez in Kotlin, designed as a Facebook-style social network for students at the Technological Institute of Aguascalientes (ITA). The app lets students create posts, interact with a social feed, and stay connected with their university community — all from a native Android interface. Under the hood it employs a dual-database strategy: a local SQLite database keeps the app functional offline, while an external REST API built with Node.js and Express connects to a MySQL server for persistent, server-side storage.

Project Metadata

FieldDetails
GitHub RepositoryEmmanuel-Mtz-777/Cita
Primary Language / FrameworkKotlin / Android
StatusOpen Source

Tech Stack

TechnologyPurpose
KotlinNative Android development — UI, navigation, and business logic
SQLiteLocal offline database for caching posts and user data on-device
Node.js + ExpressBackend REST API serving and persisting data server-side
MySQLServer-side relational database storing users, posts, and interactions

Overview

C-Ita reimagines the campus social experience as a mobile-first product. Students can sign up, log in, write posts, and scroll through a chronological feed of content from their peers — all within a clean native Android UI built in Kotlin. The app follows standard Android architecture patterns, separating presentation, domain logic, and data access into distinct layers for maintainability. Data access is handled through a two-tier persistence model. SQLite acts as the local cache: when the device is offline or the network is slow, the app reads from and writes to the local database, ensuring the feed is never empty. When connectivity is available, the app synchronises with the remote Node.js + Express REST API, which persists changes to a MySQL database on the server. This means a post created offline is queued locally and flushed to the server the next time a connection is established. The Node.js backend exposes a set of JSON REST endpoints covering user authentication, post creation, feed retrieval, and basic interaction actions. Express handles routing and middleware, while a MySQL connection pool manages concurrent database queries efficiently.

Key Features

User Posts Feed

Students can create text posts and browse a chronological social feed, mirroring the core interaction loop of mainstream social platforms in a university context.

Local SQLite Fallback

All feed data is cached in a local SQLite database, keeping the app fully usable when the device is offline or the remote API is unreachable.

REST API Integration

A Node.js + Express backend exposes clean JSON endpoints for auth, posts, and user management, decoupling the Android frontend from the database layer.

University-Focused Social Network

Purpose-built for ITA students, C-Ita creates a shared digital space for campus community interaction within a familiar, social-media-style interface.

Technical Details

The Android frontend is written entirely in Kotlin and targets the standard Android SDK. UI is constructed using Android Views (XML layouts) with Activity/Fragment navigation, and network calls to the REST API are made asynchronously to avoid blocking the main thread. The app uses the SQLite APIs available in the Android framework — no third-party ORM — keeping the dependency footprint minimal. The dual-database strategy is coordinated through a repository pattern. A LocalDataSource wraps SQLite reads and writes, while a RemoteDataSource handles HTTP calls to the Node.js API. A Repository class decides which source to consult based on network availability, merging remote results into the local cache on success. This pattern means the ViewModel layer never needs to know whether data came from the network or disk. On the backend, the Node.js service uses Express for routing, mysql2 for database connectivity, and JWT-style token headers for basic request authentication. The MySQL schema is normalised with separate tables for users, posts, and sessions, allowing the API to grow without restructuring the Android client.
The complete Android and Node.js source code is available on GitHub: C-Ita (Cita)

Build docs developers (and LLMs) love