Add application source code and update project structure

This commit is contained in:
PhongMacbook
2025-11-05 03:20:59 +07:00
parent 95f8296211
commit b145c7844f
155 changed files with 9171 additions and 0 deletions

View File

@@ -0,0 +1,14 @@
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'card35_news_article_widget.dart' show Card35NewsArticleWidget;
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class Card35NewsArticleModel extends FlutterFlowModel<Card35NewsArticleWidget> {
@override
void initState(BuildContext context) {}
@override
void dispose() {}
}

View File

@@ -0,0 +1,184 @@
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'card35_news_article_model.dart';
export 'card35_news_article_model.dart';
class Card35NewsArticleWidget extends StatefulWidget {
const Card35NewsArticleWidget({super.key});
@override
State<Card35NewsArticleWidget> createState() =>
_Card35NewsArticleWidgetState();
}
class _Card35NewsArticleWidgetState extends State<Card35NewsArticleWidget> {
late Card35NewsArticleModel _model;
@override
void setState(VoidCallback callback) {
super.setState(callback);
_model.onUpdate();
}
@override
void initState() {
super.initState();
_model = createModel(context, () => Card35NewsArticleModel());
}
@override
void dispose() {
_model.maybeDispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Padding(
padding: EdgeInsetsDirectional.fromSTEB(16.0, 12.0, 16.0, 0.0),
child: Container(
width: double.infinity,
decoration: BoxDecoration(
color: FlutterFlowTheme.of(context).secondaryBackground,
borderRadius: BorderRadius.circular(8.0),
),
child: Column(
mainAxisSize: MainAxisSize.max,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
height: 160.0,
child: Stack(
alignment: AlignmentDirectional(0.0, 1.0),
children: [
Align(
alignment: AlignmentDirectional(0.0, -1.0),
child: ClipRRect(
borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(0.0),
bottomRight: Radius.circular(0.0),
topLeft: Radius.circular(8.0),
topRight: Radius.circular(8.0),
),
child: Image.asset(
'assets/images/230302-AWS-services.jpg',
width: double.infinity,
height: 130.0,
fit: BoxFit.cover,
),
),
),
Align(
alignment: AlignmentDirectional(0.0, 1.0),
child: Padding(
padding:
EdgeInsetsDirectional.fromSTEB(16.0, 0.0, 24.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.end,
children: [
Row(
mainAxisSize: MainAxisSize.max,
children: [
Icon(
Icons.grid_on_rounded,
color: Color(0xFF9A0F0F),
size: 24.0,
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
8.0, 0.0, 0.0, 0.0),
child: Text(
'NASA NEWS',
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
color: Color(0xFFAE1010),
fontSize: 23.0,
letterSpacing: 0.0,
fontWeight: FontWeight.bold,
),
),
),
],
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 12.0),
child: Container(
width: 40.0,
height: 40.0,
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [
FlutterFlowTheme.of(context).primary,
FlutterFlowTheme.of(context).secondary,
FlutterFlowTheme.of(context).alternate
],
stops: [0.0, 0.3, 1.0],
begin: AlignmentDirectional(1.0, 0.98),
end: AlignmentDirectional(-1.0, -0.98),
),
shape: BoxShape.circle,
),
child: Padding(
padding: EdgeInsets.all(2.0),
child: Container(
width: 40.0,
height: 40.0,
decoration: BoxDecoration(
color: FlutterFlowTheme.of(context)
.secondaryBackground,
shape: BoxShape.circle,
),
child: Icon(
Icons.chevron_right_rounded,
color: FlutterFlowTheme.of(context)
.primaryText,
size: 32.0,
),
),
),
),
),
],
),
),
),
],
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(16.0, 8.0, 0.0, 0.0),
child: Text(
'Explore Open Data on AWS',
style: FlutterFlowTheme.of(context).titleLarge.override(
fontFamily: 'Inter Tight',
fontSize: 24.0,
letterSpacing: 0.0,
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(16.0, 4.0, 16.0, 0.0),
child: Text(
'NASA partners with Amazon Web Services (AWS) to offer high-value scientific datasets for faster research. The data spans multiple fields and is suitable for AI training, supporting NASA\'s commitment to open science.sss',
style: FlutterFlowTheme.of(context).labelMedium.override(
fontFamily: 'Inter',
fontSize: 19.0,
letterSpacing: 0.0,
),
),
),
],
),
),
);
}
}

View File

@@ -0,0 +1,16 @@
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import '/flutter_flow/flutter_flow_widgets.dart';
import 'card38_location_details_widget.dart' show Card38LocationDetailsWidget;
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class Card38LocationDetailsModel
extends FlutterFlowModel<Card38LocationDetailsWidget> {
@override
void initState(BuildContext context) {}
@override
void dispose() {}
}

View File

@@ -0,0 +1,208 @@
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import '/flutter_flow/flutter_flow_widgets.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'card38_location_details_model.dart';
export 'card38_location_details_model.dart';
class Card38LocationDetailsWidget extends StatefulWidget {
const Card38LocationDetailsWidget({super.key});
@override
State<Card38LocationDetailsWidget> createState() =>
_Card38LocationDetailsWidgetState();
}
class _Card38LocationDetailsWidgetState
extends State<Card38LocationDetailsWidget> {
late Card38LocationDetailsModel _model;
@override
void setState(VoidCallback callback) {
super.setState(callback);
_model.onUpdate();
}
@override
void initState() {
super.initState();
_model = createModel(context, () => Card38LocationDetailsModel());
}
@override
void dispose() {
_model.maybeDispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Padding(
padding: EdgeInsetsDirectional.fromSTEB(16.0, 0.0, 16.0, 12.0),
child: Container(
width: double.infinity,
decoration: BoxDecoration(
color: FlutterFlowTheme.of(context).secondaryBackground,
boxShadow: [
BoxShadow(
blurRadius: 3.0,
color: Color(0x33000000),
offset: Offset(
0.0,
1.0,
),
)
],
borderRadius: BorderRadius.circular(12.0),
),
child: Padding(
padding: EdgeInsets.all(12.0),
child: Column(
mainAxisSize: MainAxisSize.max,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(10.0),
child: Image.asset(
'assets/images/VZIc6KAR_400x400.jpg',
width: 94.0,
height: 93.0,
fit: BoxFit.cover,
),
),
Expanded(
child: Padding(
padding:
EdgeInsetsDirectional.fromSTEB(12.0, 8.0, 0.0, 0.0),
child: Column(
mainAxisSize: MainAxisSize.max,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'NASA NEWS',
style:
FlutterFlowTheme.of(context).bodyLarge.override(
fontFamily: 'Inter',
fontSize: 21.0,
letterSpacing: 0.0,
fontWeight: FontWeight.bold,
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 4.0, 0.0, 0.0),
child: SelectionArea(
child: Text(
'Astromaterials Data System',
style: FlutterFlowTheme.of(context)
.bodySmall
.override(
fontFamily: 'Inter',
color: Color(0xFFB40404),
fontSize: 23.0,
letterSpacing: 0.0,
fontWeight: FontWeight.bold,
),
)),
),
],
),
),
),
Icon(
Icons.check_circle_outline_rounded,
color: FlutterFlowTheme.of(context).secondaryText,
size: 24.0,
),
],
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(0.0, 8.0, 0.0, 0.0),
child: Text(
'OSIRIS-REx has returned samples from asteroid Bennu, now available in NASA\'s Astromaterials Data System (Astromat). Explore data from Bennu, lunar samples, meteorites, and more with 40+ years of searchable archives',
style: FlutterFlowTheme.of(context).bodyLarge.override(
fontFamily: 'Inter',
fontSize: 21.0,
letterSpacing: 0.0,
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 4.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 8.0, 0.0, 0.0),
child: SelectionArea(
child: Text(
'Last Activity',
style: FlutterFlowTheme.of(context).labelSmall.override(
fontFamily: 'Inter',
letterSpacing: 0.0,
),
)),
),
Expanded(
child: Align(
alignment: AlignmentDirectional(-1.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
4.0, 8.0, 0.0, 0.0),
child: SelectionArea(
child: Text(
'Yesterday, 4:21pm',
textAlign: TextAlign.start,
style:
FlutterFlowTheme.of(context).bodySmall.override(
fontFamily: 'Inter',
letterSpacing: 0.0,
),
)),
),
),
),
],
),
),
FFButtonWidget(
onPressed: () {
print('Button pressed ...');
},
text: 'NEWS',
options: FFButtonOptions(
height: 40.0,
padding: EdgeInsetsDirectional.fromSTEB(16.0, 0.0, 16.0, 0.0),
iconPadding:
EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 0.0),
color: Color(0xFFFFCF00),
textStyle: FlutterFlowTheme.of(context).titleSmall.override(
fontFamily: 'Inter Tight',
color: Colors.white,
letterSpacing: 0.0,
),
elevation: 2.0,
borderSide: BorderSide(
color: Colors.transparent,
width: 1.0,
),
borderRadius: BorderRadius.circular(8.0),
),
),
],
),
),
),
);
}
}

View File

@@ -0,0 +1,14 @@
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'notifi_widget.dart' show NotifiWidget;
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class NotifiModel extends FlutterFlowModel<NotifiWidget> {
@override
void initState(BuildContext context) {}
@override
void dispose() {}
}

View File

@@ -0,0 +1,185 @@
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'notifi_model.dart';
export 'notifi_model.dart';
class NotifiWidget extends StatefulWidget {
const NotifiWidget({super.key});
@override
State<NotifiWidget> createState() => _NotifiWidgetState();
}
class _NotifiWidgetState extends State<NotifiWidget> {
late NotifiModel _model;
@override
void setState(VoidCallback callback) {
super.setState(callback);
_model.onUpdate();
}
@override
void initState() {
super.initState();
_model = createModel(context, () => NotifiModel());
}
@override
void dispose() {
_model.maybeDispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Padding(
padding: EdgeInsetsDirectional.fromSTEB(16.0, 0.0, 16.0, 1.0),
child: Container(
width: double.infinity,
decoration: BoxDecoration(
color: FlutterFlowTheme.of(context).secondaryBackground,
boxShadow: [
BoxShadow(
blurRadius: 0.0,
color: FlutterFlowTheme.of(context).primaryBackground,
offset: Offset(
0.0,
1.0,
),
)
],
borderRadius: BorderRadius.circular(12.0),
),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(16.0, 0.0, 16.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(
flex: 4,
child: Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 12.0, 12.0, 12.0),
child: Row(
mainAxisSize: MainAxisSize.max,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
width: 44.0,
height: 44.0,
decoration: BoxDecoration(
color: FlutterFlowTheme.of(context).primaryBackground,
shape: BoxShape.circle,
),
child: Padding(
padding: EdgeInsets.all(2.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(40.0),
child: Image.network(
'https://images.unsplash.com/photo-1474176857210-7287d38d27c6?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxzZWFyY2h8NTB8fHVzZXJzfGVufDB8fDB8fA%3D%3D&auto=format&fit=crop&w=900&q=60',
width: 36.0,
height: 36.0,
fit: BoxFit.cover,
),
),
),
),
Expanded(
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
12.0, 0.0, 0.0, 0.0),
child: Column(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 4.0, 0.0, 0.0),
child: Text(
'Andrew Hernandez',
style: FlutterFlowTheme.of(context)
.bodyLarge
.override(
fontFamily: 'Inter',
letterSpacing: 0.0,
),
),
),
Text(
'Jan. 28th, 4:30pm',
style: FlutterFlowTheme.of(context)
.labelSmall
.override(
fontFamily: 'Inter',
letterSpacing: 0.0,
),
),
],
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 4.0, 0.0, 0.0),
child: Text(
'@username',
style: FlutterFlowTheme.of(context)
.bodySmall
.override(
fontFamily: 'Inter',
color: FlutterFlowTheme.of(context)
.primary,
letterSpacing: 0.0,
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 4.0, 0.0, 0.0),
child: Text(
'FlutterFlow is a visual development platform that allows you to easily create beautiful and responsive user interfaces for your mobile and web applications. ',
style: FlutterFlowTheme.of(context)
.labelSmall
.override(
fontFamily: 'Inter',
letterSpacing: 0.0,
),
),
),
],
),
),
),
],
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(0.0, 20.0, 0.0, 0.0),
child: Container(
width: 12.0,
height: 12.0,
decoration: BoxDecoration(
color: FlutterFlowTheme.of(context).secondary,
shape: BoxShape.circle,
),
alignment: AlignmentDirectional(0.0, 0.0),
),
),
],
),
),
),
);
}
}