diff --git a/lib/widgets/alert_default.dart b/lib/componentes/alert_default.dart similarity index 78% rename from lib/widgets/alert_default.dart rename to lib/componentes/alert_default.dart index e174e9c..228ff2b 100644 --- a/lib/widgets/alert_default.dart +++ b/lib/componentes/alert_default.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; -import 'package:rkm_educa_app/utils/colors.dart'; -import 'package:rkm_educa_app/widgets/buttom_custom.dart'; -import 'package:rkm_educa_app/widgets/text_custom.dart'; +import 'package:rkm_educa_app/utils/cores.dart'; +import 'package:rkm_educa_app/componentes/buttom_custom.dart'; +import 'package:rkm_educa_app/componentes/text_custom.dart'; class AlertDefault{ alert(BuildContext context,String title,String textButtom,Widget subtitle,) { @@ -28,8 +28,8 @@ class AlertDefault{ heightCustom: 0.05, size: 14, colorText: Colors.white, - colorBorder: PaletteColors.grey, - colorButton: PaletteColors.grey, + colorBorder: PaletaCores.cinza, + colorButton: PaletaCores.cinza, ) ], actionsAlignment: MainAxisAlignment.center, diff --git a/lib/widgets/appbar_custom.dart b/lib/componentes/appbar_custom.dart similarity index 73% rename from lib/widgets/appbar_custom.dart rename to lib/componentes/appbar_custom.dart index 10b9d47..dd039d2 100644 --- a/lib/widgets/appbar_custom.dart +++ b/lib/componentes/appbar_custom.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; -import 'package:rkm_educa_app/widgets/text_custom.dart'; +import 'package:rkm_educa_app/componentes/text_custom.dart'; -import '../utils/colors.dart'; +import '../utils/cores.dart'; class AppBarCustom{ @override @@ -10,7 +10,7 @@ class AppBarCustom{ return PreferredSize( preferredSize: Size.fromHeight(50), child: AppBar( - backgroundColor: PaletteColors.appBar, + backgroundColor: PaletaCores.appBar, centerTitle: true, title: TextCustom(text: title,color: Colors.white,fontWeight: FontWeight.bold,size: 20.0,), ), diff --git a/lib/widgets/buttom_custom.dart b/lib/componentes/buttom_custom.dart similarity index 84% rename from lib/widgets/buttom_custom.dart rename to lib/componentes/buttom_custom.dart index 6bc22a6..5a6678f 100644 --- a/lib/widgets/buttom_custom.dart +++ b/lib/componentes/buttom_custom.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:rkm_educa_app/utils/dimensoes.dart'; class ButtonCustom extends StatelessWidget{ final VoidCallback onPressed; @@ -22,13 +23,11 @@ ButtonCustom({ }); @override Widget build (BuildContext context) { - double width =MediaQuery.of(context).size.width; - double height =MediaQuery.of(context).size.height; return ElevatedButton( style: ElevatedButton.styleFrom( primary: colorButton, - minimumSize: Size(width*widthCustom! , height*heightCustom!), + minimumSize: Size(Dimensoes.width*widthCustom! , Dimensoes.height*heightCustom!), side: BorderSide(width: 2,color : colorBorder,), ), onPressed: onPressed, diff --git a/lib/widgets/drawer_custom.dart b/lib/componentes/drawer_custom.dart similarity index 50% rename from lib/widgets/drawer_custom.dart rename to lib/componentes/drawer_custom.dart index 1a96109..8af2c1e 100644 --- a/lib/widgets/drawer_custom.dart +++ b/lib/componentes/drawer_custom.dart @@ -1,25 +1,26 @@ import 'package:flutter/material.dart'; import 'package:line_icons/line_icons.dart'; -import 'package:rkm_educa_app/models/aluno_model.dart'; -import 'package:rkm_educa_app/screens/login_screen.dart'; -import 'package:rkm_educa_app/screens/perfil_screen.dart'; -import 'package:rkm_educa_app/utils/colors.dart'; -import 'package:rkm_educa_app/widgets/text_custom.dart'; +import 'package:rkm_educa_app/Telas/tela_situacao_escolar.dart'; +import 'package:rkm_educa_app/modelos/estudante_modelo.dart'; +import 'package:rkm_educa_app/telas/tela_contatos.dart'; +import 'package:rkm_educa_app/telas/tela_login.dart'; +import 'package:rkm_educa_app/telas/tela_perfil.dart'; +import 'package:rkm_educa_app/utils/cores.dart'; +import 'package:rkm_educa_app/componentes/text_custom.dart'; +import 'package:rkm_educa_app/utils/dimensoes.dart'; import 'item_drawer.dart'; class DrawerCustom extends StatelessWidget { - AlunoModel alunoModel; + EstudanteModelo estudanteModelo; DrawerCustom({ - required this.alunoModel + required this.estudanteModelo }); @override Widget build(BuildContext context) { - double width = MediaQuery.of(context).size.width; - double height = MediaQuery.of(context).size.height; return Container( padding: EdgeInsets.symmetric(vertical: 20), - width: width*0.8, + width: Dimensoes.width*0.8, color: Colors.white, child: ListView( children: [ @@ -27,72 +28,81 @@ class DrawerCustom extends StatelessWidget { radius: 70, child: ClipRRect( borderRadius:BorderRadius.circular(70), - child: Image.asset(alunoModel.foto), + child: Image.asset(estudanteModelo.foto), ) ), Padding( padding: const EdgeInsets.all(8.0), - child: TextCustom(text: alunoModel.nome,fontWeight: FontWeight.bold,size: 16.0,textAlign: TextAlign.center), + child: TextCustom(text: estudanteModelo.nome,fontWeight: FontWeight.bold,size: 16.0,textAlign: TextAlign.center), ), Container( - height: height*0.5, + height: Dimensoes.height*0.5, child: ListView( children: [ + ItemDrawer( + icone: LineIcons.home, + texto: 'Situação Escolar', + onPressed: ()=> Navigator.pushReplacement( + context, + MaterialPageRoute(builder: (context) => TelaSituacaoEscolar(estudanteModelo: estudanteModelo,)), + ), + ), + Container(height: 1,color: PaletaCores.divider,margin: EdgeInsets.symmetric(horizontal: 20),), ItemDrawer( icone: LineIcons.userCircle, texto: 'Perfil', onPressed: ()=> Navigator.pushReplacement( context, - MaterialPageRoute(builder: (context) => PerfilScreen(alunoModel: alunoModel,)), + MaterialPageRoute(builder: (context) => TelaPerfil(estudanteModelo: estudanteModelo,)), ), ), - Container(height: 1,color: PaletteColors.divider,margin: EdgeInsets.symmetric(horizontal: 20),), + Container(height: 1,color: PaletaCores.divider,margin: EdgeInsets.symmetric(horizontal: 20),), ItemDrawer( icone: LineIcons.clipboardList, texto: 'Boletim Escolar', onPressed: (){}, ), - Container(height: 1,color: PaletteColors.divider,margin: EdgeInsets.symmetric(horizontal: 20),), + Container(height: 1,color: PaletaCores.divider,margin: EdgeInsets.symmetric(horizontal: 20),), ItemDrawer( icone: LineIcons.fileContract, texto: 'Histórico Escolar', onPressed: (){}, ), - Container(height: 1,color: PaletteColors.divider,margin: EdgeInsets.symmetric(horizontal: 20),), + Container(height: 1,color: PaletaCores.divider,margin: EdgeInsets.symmetric(horizontal: 20),), ItemDrawer( icone: LineIcons.checkSquareAlt, texto: 'Chamadas / Presenças', onPressed: (){}, ), - Container(height: 1,color: PaletteColors.divider,margin: EdgeInsets.symmetric(horizontal: 20),), + Container(height: 1,color: PaletaCores.divider,margin: EdgeInsets.symmetric(horizontal: 20),), ItemDrawer( icone: LineIcons.calendarAlt, texto: 'Agenda Escolar', onPressed: (){}, ), - Container(height: 1,color: PaletteColors.divider,margin: EdgeInsets.symmetric(horizontal: 20),), + Container(height: 1,color: PaletaCores.divider,margin: EdgeInsets.symmetric(horizontal: 20),), ItemDrawer( icone: LineIcons.calendarTimes, texto: 'Eventos Escolares', onPressed: (){}, ), - Container(height: 1,color: PaletteColors.divider,margin: EdgeInsets.symmetric(horizontal: 20),), + Container(height: 1,color: PaletaCores.divider,margin: EdgeInsets.symmetric(horizontal: 20),), ItemDrawer( icone: LineIcons.mobilePhone, texto: 'Contatos', - onPressed: (){}, + onPressed: ()=>Navigator.push(context, MaterialPageRoute(builder: (context)=>TelaContatos(estudanteModelo: estudanteModelo,))), ), - Container(height: 1,color: PaletteColors.divider,margin: EdgeInsets.symmetric(horizontal: 20),), + Container(height: 1,color: PaletaCores.divider,margin: EdgeInsets.symmetric(horizontal: 20),), ItemDrawer( icone: LineIcons.bus, texto: 'Passe', onPressed: (){}, ), - Container(height: 1,color: PaletteColors.divider,margin: EdgeInsets.symmetric(horizontal: 20),), + Container(height: 1,color: PaletaCores.divider,margin: EdgeInsets.symmetric(horizontal: 20),), ], ), ), - SizedBox(height: height*0.15,), + SizedBox(height: Dimensoes.height*0.15,), SafeArea( child: Container( alignment: Alignment.bottomRight, @@ -101,7 +111,7 @@ class DrawerCustom extends StatelessWidget { onPressed: (){ Navigator.pushReplacement( context, - MaterialPageRoute(builder: (context) => LoginScreen()), + MaterialPageRoute(builder: (context) => TelaLogin()), ); }, ), diff --git a/lib/widgets/input_text.dart b/lib/componentes/input_text.dart similarity index 95% rename from lib/widgets/input_text.dart rename to lib/componentes/input_text.dart index 0e07d74..382c93a 100644 --- a/lib/widgets/input_text.dart +++ b/lib/componentes/input_text.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import '../utils/colors.dart'; +import '../utils/cores.dart'; class InputText extends StatelessWidget { bool obscure; @@ -24,7 +24,7 @@ class InputText extends StatelessWidget { this.title = '', this.textInputType = TextInputType.text, this.maxLines = 1, - this.colorBorder = PaletteColors.grey, + this.colorBorder = PaletaCores.cinza, this.onChanged = null, this.enable = true, required this.inputFormatters @@ -39,7 +39,7 @@ class InputText extends StatelessWidget { child: Text(title,style: TextStyle(fontWeight: FontWeight.bold,fontFamily: 'Nunito'),) ), Container( - color:PaletteColors.greyInput, + color:PaletaCores.cinzaInput, width: width, margin: EdgeInsets.only(bottom: 5), child: TextFormField( diff --git a/lib/componentes/item_avisos.dart b/lib/componentes/item_avisos.dart new file mode 100644 index 0000000..9dd51fa --- /dev/null +++ b/lib/componentes/item_avisos.dart @@ -0,0 +1,73 @@ +import 'package:flutter/material.dart'; +import 'package:rkm_educa_app/componentes/text_custom.dart'; +import '../utils/cores.dart'; + +class ItemAvisos extends StatelessWidget { + + String data; + String aviso; + bool naovisto; + var onTap; + + ItemAvisos({ + required this.data, + required this.aviso, + required this.naovisto, + required this.onTap +}); + + @override + Widget build(BuildContext context) { + + double height = MediaQuery.of(context).size.height; + double width = MediaQuery.of(context).size.width; + + return GestureDetector( + onTap: onTap, + child: Container( + color: PaletaCores.branco, + padding: const EdgeInsets.symmetric(horizontal: 20.0,vertical: 5), + child: Column( + children: [ + Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Container( + width: width*0.8, + height: 65, + padding: const EdgeInsets.symmetric(horizontal: 20.0), + child: Column( + children: [ + Padding( + padding: EdgeInsets.symmetric(vertical: 5), + child: Row( + children: [ + TextCustom(text: 'Data',size: 14.0,fontWeight: FontWeight.bold), + SizedBox(width: 10,), + TextCustom(text: data,size: 14.0,fontWeight: naovisto?FontWeight.bold:FontWeight.normal,color: naovisto?PaletaCores.cinzaEscuro:PaletaCores.cinzaClaro,), + ], + ), + ), + Padding( + padding: EdgeInsets.symmetric(vertical: 5), + child: Row( + children: [ + TextCustom(text: 'Aviso',size: 14.0,fontWeight: FontWeight.bold), + SizedBox(width: 10,), + TextCustom(text: aviso,fontWeight: naovisto?FontWeight.bold:FontWeight.normal,color: naovisto?PaletaCores.cinzaEscuro:PaletaCores.cinzaClaro,), + ], + ), + ), + ], + ), + ), + naovisto?CircleAvatar(backgroundColor: PaletaCores.notificacao,radius: 6,):Container() + ], + ), + Container(width: double.infinity,height: 2,color: PaletaCores.divider,) + ], + ), + ), + ); + } +} diff --git a/lib/widgets/item_drawer.dart b/lib/componentes/item_drawer.dart similarity index 80% rename from lib/widgets/item_drawer.dart rename to lib/componentes/item_drawer.dart index a67b820..fac8289 100644 --- a/lib/widgets/item_drawer.dart +++ b/lib/componentes/item_drawer.dart @@ -1,7 +1,6 @@ import 'package:flutter/material.dart'; -import 'package:rkm_educa_app/widgets/text_custom.dart'; - -import '../utils/colors.dart'; +import 'package:rkm_educa_app/componentes/text_custom.dart'; +import '../utils/cores.dart'; class ItemDrawer extends StatelessWidget { IconData icone; @@ -22,7 +21,7 @@ class ItemDrawer extends StatelessWidget { alignment: Alignment.centerLeft, child: TextButton.icon( onPressed: onPressed, - icon: Icon(icone,color: PaletteColors.grey,), + icon: Icon(icone,color: PaletaCores.cinza,), label: TextCustom(text: texto,size: 16.0,) ), ); diff --git a/lib/widgets/item_perfil.dart b/lib/componentes/item_perfil.dart similarity index 80% rename from lib/widgets/item_perfil.dart rename to lib/componentes/item_perfil.dart index 1b64070..6db5133 100644 --- a/lib/widgets/item_perfil.dart +++ b/lib/componentes/item_perfil.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:rkm_educa_app/widgets/text_custom.dart'; +import 'package:rkm_educa_app/componentes/text_custom.dart'; class ItemPerfil extends StatelessWidget { String texto; @@ -13,7 +13,7 @@ class ItemPerfil extends StatelessWidget { @override Widget build(BuildContext context) { return Padding( - padding: const EdgeInsets.symmetric(vertical: 10.0), + padding: EdgeInsets.symmetric(vertical: 10), child: Row( children: [ TextCustom(text: titulo,size: 14.0,fontWeight: FontWeight.bold,), diff --git a/lib/widgets/snackBars.dart b/lib/componentes/snackBars.dart similarity index 100% rename from lib/widgets/snackBars.dart rename to lib/componentes/snackBars.dart diff --git a/lib/widgets/text_custom.dart b/lib/componentes/text_custom.dart similarity index 92% rename from lib/widgets/text_custom.dart rename to lib/componentes/text_custom.dart index d04bc12..68c6138 100644 --- a/lib/widgets/text_custom.dart +++ b/lib/componentes/text_custom.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; -import '../utils/colors.dart'; +import '../utils/cores.dart'; class TextCustom extends StatelessWidget { final text; @@ -14,7 +14,7 @@ class TextCustom extends StatelessWidget { TextCustom({ required this.text, this.size = 16.0, - this.color = PaletteColors.grey, + this.color = PaletaCores.cinza, this.fontWeight = FontWeight.normal, this.textAlign = TextAlign.start, this.maxLines = 1, diff --git a/lib/main.dart b/lib/main.dart index 12c237e..f4375ed 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,6 +1,6 @@ import 'dart:io'; import 'package:flutter/material.dart'; -import 'package:rkm_educa_app/screens/login_screen.dart'; +import 'package:rkm_educa_app/telas/tela_login.dart'; class PostHttpOverrides extends HttpOverrides{ @override @@ -22,7 +22,7 @@ class MyApp extends StatelessWidget { Widget build(BuildContext context) { return MaterialApp( debugShowCheckedModeBanner: false, - home: LoginScreen(), + home: TelaLogin(), ); } } diff --git a/lib/modelos/dados_estaticos.dart b/lib/modelos/dados_estaticos.dart new file mode 100644 index 0000000..69612d4 --- /dev/null +++ b/lib/modelos/dados_estaticos.dart @@ -0,0 +1,8 @@ +import 'estudante_modelo.dart'; + +class DadosEstaticos{ + List alunos = [ + EstudanteModelo(nome: "Maria da Silva", foto: "assets/images/aluna.jpeg", ra: '000.000.000-08', escola: 'EMEI Profª Therezinha de Jesus Alguz', idade: 14, anoEscolar: 2023), + EstudanteModelo(nome: "João da Silva", foto: "assets/images/aluno.jpeg", ra: '000.000.000-10', escola: 'EMEI Profª Ernestina Loureiro Miranda', idade: 12, anoEscolar: 2023), + ]; +} \ No newline at end of file diff --git a/lib/models/aluno_model.dart b/lib/modelos/estudante_modelo.dart similarity index 84% rename from lib/models/aluno_model.dart rename to lib/modelos/estudante_modelo.dart index 50570c1..eb9beca 100644 --- a/lib/models/aluno_model.dart +++ b/lib/modelos/estudante_modelo.dart @@ -1,4 +1,4 @@ -class AlunoModel{ +class EstudanteModelo{ String nome; String foto; String ra; @@ -6,7 +6,7 @@ class AlunoModel{ int idade; int anoEscolar; - AlunoModel({ + EstudanteModelo({ required this.nome, required this.foto, required this.ra, diff --git a/lib/screens/situacao_escolar_screen.dart b/lib/screens/situacao_escolar_screen.dart deleted file mode 100644 index 72f190a..0000000 --- a/lib/screens/situacao_escolar_screen.dart +++ /dev/null @@ -1,47 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:rkm_educa_app/models/aluno_model.dart'; -import 'package:rkm_educa_app/utils/colors.dart'; -import 'package:rkm_educa_app/widgets/text_custom.dart'; -import '../widgets/drawer_custom.dart'; - -class SituacaoEscolarScreen extends StatefulWidget { - AlunoModel alunoModel; - - SituacaoEscolarScreen({ - required this.alunoModel - }); - - @override - State createState() => _SituacaoEscolarScreenState(); -} - -class _SituacaoEscolarScreenState extends State { - @override - Widget build(BuildContext context) { - return Scaffold( - backgroundColor: PaletteColors.backPage, - appBar: AppBar( - iconTheme: IconThemeData(color: PaletteColors.grey), - backgroundColor: Colors.transparent, - elevation: 0, - actions: [ - Padding( - padding: const EdgeInsets.all(4.0), - child: IconButton( - onPressed: (){}, - icon: Icon(Icons.notifications_outlined,size: 32), - ) - ) - ], - ), - drawer: DrawerCustom(alunoModel: widget.alunoModel), - body: ListView( - children: [ - Center( - child: TextCustom(text: 'Situção Escolar',fontWeight: FontWeight.bold,size: 20.0,), - ), - ], - ), - ); - } -} diff --git a/lib/telas/tela_avisos.dart b/lib/telas/tela_avisos.dart new file mode 100644 index 0000000..d109557 --- /dev/null +++ b/lib/telas/tela_avisos.dart @@ -0,0 +1,41 @@ +import 'package:flutter/material.dart'; +import 'package:rkm_educa_app/componentes/appbar_custom.dart'; +import 'package:rkm_educa_app/componentes/drawer_custom.dart'; +import 'package:rkm_educa_app/modelos/estudante_modelo.dart'; +import 'package:rkm_educa_app/telas/tela_detalhes_avisos.dart'; +import 'package:rkm_educa_app/utils/dimensoes.dart'; +import '../componentes/item_avisos.dart'; + +class TelaAvisos extends StatefulWidget { + EstudanteModelo estudanteModelo; + TelaAvisos({ + required this.estudanteModelo +}); + + @override + State createState() => _TelaAvisosState(); +} + +class _TelaAvisosState extends State { + @override + Widget build(BuildContext context) { + + return Scaffold( + appBar: AppBarCustom().appbar(context, 'AVISOS'), + drawer: DrawerCustom(estudanteModelo: widget.estudanteModelo,), + body: Container( + padding: EdgeInsets.symmetric(vertical: 20,horizontal: 10), + width: Dimensoes.width, + height: Dimensoes.height, + child: ListView( + children: [ + ItemAvisos(data: '28/04/2023',aviso: 'Não haverá aula',naovisto: true,onTap: ()=>Navigator.push(context, MaterialPageRoute(builder: (context)=>TelaDetalhesAvisos(estudanteModelo: widget.estudanteModelo,)))), + ItemAvisos(data: '05/05/2023',aviso: 'Reunião de pais',naovisto: true,onTap: ()=>Navigator.push(context, MaterialPageRoute(builder: (context)=>TelaDetalhesAvisos(estudanteModelo: widget.estudanteModelo)))), + ItemAvisos(data: '08/06/2023',aviso: 'Não haverá aula',naovisto: false,onTap: ()=>Navigator.push(context, MaterialPageRoute(builder: (context)=>TelaDetalhesAvisos(estudanteModelo: widget.estudanteModelo)))), + ItemAvisos(data: '07/09/2023',aviso: 'Não haverá aula',naovisto: false,onTap: ()=>Navigator.push(context, MaterialPageRoute(builder: (context)=>TelaDetalhesAvisos(estudanteModelo: widget.estudanteModelo)))), + ], + ), + ), + ); + } +} diff --git a/lib/telas/tela_contatos.dart b/lib/telas/tela_contatos.dart new file mode 100644 index 0000000..b5bd114 --- /dev/null +++ b/lib/telas/tela_contatos.dart @@ -0,0 +1,38 @@ +import 'package:flutter/material.dart'; +import 'package:rkm_educa_app/componentes/appbar_custom.dart'; +import 'package:rkm_educa_app/componentes/drawer_custom.dart'; +import 'package:rkm_educa_app/modelos/estudante_modelo.dart'; +import '../componentes/item_perfil.dart'; + +class TelaContatos extends StatefulWidget { + EstudanteModelo estudanteModelo; + + TelaContatos({ + required this.estudanteModelo +}); + + @override + State createState() => _TelaContatosState(); +} + +class _TelaContatosState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBarCustom().appbar(context, 'CONTATOS'), + drawer: DrawerCustom(estudanteModelo: widget.estudanteModelo), + body: Padding( + padding: EdgeInsets.all(30), + child: ListView( + children: [ + ItemPerfil(texto: 'José Oliveira', titulo: 'Diretor(a)'), + ItemPerfil(texto: 'Luiz Araújo', titulo: 'Coordenador(a)'), + ItemPerfil(texto: '', titulo: 'Telefones :'), + ItemPerfil(texto: 'Coordenação - (15) 3275 - 1234', titulo: ''), + ItemPerfil(texto: 'Secretaria - (15) 3275 - 1234', titulo: ''), + ], + ), + ), + ); + } +} diff --git a/lib/telas/tela_detalhes_avisos.dart b/lib/telas/tela_detalhes_avisos.dart new file mode 100644 index 0000000..a81c835 --- /dev/null +++ b/lib/telas/tela_detalhes_avisos.dart @@ -0,0 +1,56 @@ +import 'package:flutter/material.dart'; +import 'package:rkm_educa_app/componentes/appbar_custom.dart'; +import 'package:rkm_educa_app/componentes/item_perfil.dart'; +import 'package:rkm_educa_app/componentes/text_custom.dart'; +import 'package:rkm_educa_app/modelos/estudante_modelo.dart'; +import 'package:rkm_educa_app/telas/tela_avisos.dart'; +import 'package:rkm_educa_app/utils/cores.dart'; +import '../componentes/buttom_custom.dart'; +import '../utils/dimensoes.dart'; + +class TelaDetalhesAvisos extends StatefulWidget { + EstudanteModelo estudanteModelo; + + TelaDetalhesAvisos({ + required this.estudanteModelo +}); + + @override + State createState() => _TelaDetalhesAvisosState(); +} + +class _TelaDetalhesAvisosState extends State { + @override + Widget build(BuildContext context) { + + return Scaffold( + appBar: AppBarCustom().appbar(context, 'DESCRIÇÃO DO AVISO'), + body: Padding( + padding: EdgeInsets.all(30), + child: ListView( + children: [ + ItemPerfil(texto: 'Não haverá aula', titulo: 'Título'), + ItemPerfil(texto: '28/04/2023', titulo: 'Data'), + ItemPerfil(texto: '08:00', titulo: 'Hora'), + ItemPerfil(texto: '', titulo: 'Descrição'), + TextCustom(text: 'Não haverá aula no dia 01 de maio de 2023, devido o feriado do Dia do trabalhador',maxLines: 20,color: PaletaCores.cinzaClaro,), + SizedBox(height: 40,), + Padding( + padding: EdgeInsets.symmetric(horizontal: Dimensoes.width*0.2), + child: ButtonCustom( + text: 'Marcar como lido', + size: 14, + heightCustom: 0.05, + widthCustom: 0.3, + colorButton: PaletaCores.cinzaClaro, + colorBorder: PaletaCores.cinzaClaro, + colorText: PaletaCores.branco, + onPressed: ()=>Navigator.pushReplacement(context, MaterialPageRoute(builder: (context)=>TelaAvisos(estudanteModelo: widget.estudanteModelo))), + ), + ) + ], + ), + ), + ); + } +} diff --git a/lib/screens/login_screen.dart b/lib/telas/tela_login.dart similarity index 68% rename from lib/screens/login_screen.dart rename to lib/telas/tela_login.dart index 8820009..7d038d3 100644 --- a/lib/screens/login_screen.dart +++ b/lib/telas/tela_login.dart @@ -1,24 +1,23 @@ import 'dart:convert'; - import 'package:flutter/material.dart'; -import 'package:rkm_educa_app/screens/seleciona_filho_screen.dart'; +import 'package:rkm_educa_app/telas/tela_seleciona_filho.dart'; +import 'package:rkm_educa_app/utils/dimensoes.dart'; import '../controllers/main_controllers.dart'; -import '../utils/colors.dart'; -import '../widgets/buttom_custom.dart'; -import '../widgets/input_text.dart'; -import '../widgets/snackBars.dart'; +import '../utils/cores.dart'; +import '../componentes/buttom_custom.dart'; +import '../componentes/input_text.dart'; +import '../componentes/snackBars.dart'; import 'package:http/http.dart' as http; +import '../componentes/text_custom.dart'; -import '../widgets/text_custom.dart'; - -class LoginScreen extends StatefulWidget { - const LoginScreen({Key? key}) : super(key: key); +class TelaLogin extends StatefulWidget { + const TelaLogin({Key? key}) : super(key: key); @override - State createState() => _LoginScreenState(); + State createState() => _TelaLoginState(); } -class _LoginScreenState extends State { +class _TelaLoginState extends State { final inputLogin = TextEditingController(text: 'mmatos'); final inputSenha = TextEditingController(text: 'mmatos'); @@ -51,10 +50,7 @@ class _LoginScreenState extends State { if(map['NO_USERNAME']==map['SENHA']){ if(map['NO_USERNAME']==inputLogin.text.toUpperCase() && map['SENHA']==inputSenha.text.toUpperCase()){ showSnackBar(context, 'Acesso validado', Colors.green); - Navigator.pushReplacement( - context, - MaterialPageRoute(builder: (context) => SelecionaFilhoScreen()), - ); + Navigator.pushReplacement(context,MaterialPageRoute(builder: (context) => TelaSelecionaFilho())); }else{ showSnackBar(context, 'Login não cadastrado e/ou senha incorreta', Colors.red); } @@ -64,7 +60,7 @@ class _LoginScreenState extends State { showSnackBar(context, 'Acesso validado', Colors.green); Navigator.push( context, - MaterialPageRoute(builder: (context) => SelecionaFilhoScreen()), + MaterialPageRoute(builder: (context) => TelaSelecionaFilho()), ); }else{ showSnackBar(context, 'Login não cadastrado e/ou senha incorreta', Colors.red); @@ -80,40 +76,39 @@ class _LoginScreenState extends State { @override Widget build(BuildContext context) { - double height = MediaQuery.of(context).size.height; - double width = MediaQuery.of(context).size.width; + Dimensoes().init(context); return Scaffold( - backgroundColor: PaletteColors.white, + backgroundColor: PaletaCores.branco, body: Center( - child: Column( + child: Column( mainAxisSize: MainAxisSize.min, children: [ Container( - child: Image.asset("assets/images/logoEduca.png",width:width * 0.4,height: height * 0.12) + child: Image.asset("assets/images/logoEduca.png",width:Dimensoes.width * 0.4,height: Dimensoes.height * 0.12) ), loading?Container():Container( - width: width>900? width * 0.18:width*0.7, + width: Dimensoes.width>900? Dimensoes.width * 0.18:Dimensoes.width*0.7, child: InputText( inputFormatters: [], controller: inputLogin, title: 'Login', - width: width>900? width * 0.18:width*0.7, - colorBorder: PaletteColors.white, + width: Dimensoes.width>900? Dimensoes.width * 0.18:Dimensoes.width*0.7, + colorBorder: PaletaCores.branco, ), ), loading?Container():Container( - width: width>900? width * 0.18:width*0.7, + width: Dimensoes.width>900? Dimensoes.width * 0.18:Dimensoes.width*0.7, child: InputText( inputFormatters: [], controller: inputSenha, title: 'Senha', obscure: true, - width: width>900? width * 0.18:width*0.7, - colorBorder: PaletteColors.white, + width: Dimensoes.width>900? Dimensoes.width * 0.18:Dimensoes.width*0.7, + colorBorder: PaletaCores.branco, ), ), - SizedBox(height: height * 0.02), + SizedBox(height: Dimensoes.height * 0.02), loading?Row( mainAxisAlignment: MainAxisAlignment.center, children: [ @@ -126,9 +121,9 @@ class _LoginScreenState extends State { heightCustom: 0.07, text: "Entrar", size: 14.0, - colorText: PaletteColors.white, - colorButton: PaletteColors.primaryColor, - colorBorder: PaletteColors.primaryColor, + colorText: PaletaCores.branco, + colorButton: PaletaCores.corPrimaria, + colorBorder: PaletaCores.corPrimaria, onPressed: ()=>verificacao(), ), ], diff --git a/lib/screens/perfil_screen.dart b/lib/telas/tela_perfil.dart similarity index 54% rename from lib/screens/perfil_screen.dart rename to lib/telas/tela_perfil.dart index 0f62519..54ce6a1 100644 --- a/lib/screens/perfil_screen.dart +++ b/lib/telas/tela_perfil.dart @@ -1,30 +1,28 @@ import 'package:flutter/material.dart'; -import 'package:rkm_educa_app/models/aluno_model.dart'; -import 'package:rkm_educa_app/utils/colors.dart'; -import 'package:rkm_educa_app/widgets/alert_default.dart'; -import 'package:rkm_educa_app/widgets/appbar_custom.dart'; -import 'package:rkm_educa_app/widgets/drawer_custom.dart'; -import 'package:rkm_educa_app/widgets/text_custom.dart'; +import 'package:rkm_educa_app/modelos/estudante_modelo.dart'; +import 'package:rkm_educa_app/utils/cores.dart'; +import 'package:rkm_educa_app/componentes/alert_default.dart'; +import 'package:rkm_educa_app/componentes/appbar_custom.dart'; +import 'package:rkm_educa_app/componentes/drawer_custom.dart'; +import '../componentes/item_perfil.dart'; -import '../widgets/item_perfil.dart'; +class TelaPerfil extends StatefulWidget { + EstudanteModelo estudanteModelo; -class PerfilScreen extends StatefulWidget { - AlunoModel alunoModel; - - PerfilScreen({ - required this.alunoModel + TelaPerfil({ + required this.estudanteModelo }); @override - State createState() => _PerfilScreenState(); + State createState() => _TelaPerfilState(); } -class _PerfilScreenState extends State { +class _TelaPerfilState extends State { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBarCustom().appbar(context, 'PERFIL'), - drawer: DrawerCustom(alunoModel: widget.alunoModel), + drawer: DrawerCustom(estudanteModelo: widget.estudanteModelo), body: ListView( padding: EdgeInsets.symmetric(vertical: 50,horizontal: 20), children: [ @@ -32,17 +30,17 @@ class _PerfilScreenState extends State { radius: 70, child: ClipRRect( borderRadius:BorderRadius.circular(70), - child: Image.asset(widget.alunoModel.foto), + child: Image.asset(widget.estudanteModelo.foto), ) ), SizedBox(height: 25,), - ItemPerfil(texto: widget.alunoModel.nome,titulo: 'Nome',), - ItemPerfil(texto: widget.alunoModel.idade.toString()+' anos',titulo: 'Idade',), - ItemPerfil(texto: widget.alunoModel.anoEscolar.toString(),titulo: 'Ano Escolar',), - ItemPerfil(texto: widget.alunoModel.ra,titulo: 'RA',), + ItemPerfil(texto: widget.estudanteModelo.nome,titulo: 'Nome',), + ItemPerfil(texto: widget.estudanteModelo.idade.toString()+' anos',titulo: 'Idade',), + ItemPerfil(texto: widget.estudanteModelo.anoEscolar.toString(),titulo: 'Ano Escolar',), + ItemPerfil(texto: widget.estudanteModelo.ra,titulo: 'RA',), Row( children: [ - ItemPerfil(texto: widget.alunoModel.escola,titulo: 'Escola',), + ItemPerfil(texto: widget.estudanteModelo.escola,titulo: 'Escola',), IconButton( onPressed: ()=> AlertDefault().alert( @@ -60,7 +58,7 @@ class _PerfilScreenState extends State { ], ), ), - icon: Icon(Icons.visibility,color: PaletteColors.grey), + icon: Icon(Icons.visibility,color: PaletaCores.cinza), padding: EdgeInsets.all(0), ) ], diff --git a/lib/screens/seleciona_filho_screen.dart b/lib/telas/tela_seleciona_filho.dart similarity index 51% rename from lib/screens/seleciona_filho_screen.dart rename to lib/telas/tela_seleciona_filho.dart index 00f6685..968cea6 100644 --- a/lib/screens/seleciona_filho_screen.dart +++ b/lib/telas/tela_seleciona_filho.dart @@ -1,57 +1,59 @@ import 'package:flutter/material.dart'; -import 'package:rkm_educa_app/models/aluno_model.dart'; -import 'package:rkm_educa_app/screens/situacao_escolar_screen.dart'; -import 'package:rkm_educa_app/widgets/appbar_custom.dart'; -import '../utils/colors.dart'; -import '../widgets/buttom_custom.dart'; -import '../widgets/snackBars.dart'; +import 'package:rkm_educa_app/modelos/dados_estaticos.dart'; +import 'package:rkm_educa_app/modelos/estudante_modelo.dart'; +import 'package:rkm_educa_app/telas/tela_situacao_escolar.dart'; +import 'package:rkm_educa_app/componentes/appbar_custom.dart'; +import '../utils/cores.dart'; +import '../componentes/buttom_custom.dart'; +import '../componentes/snackBars.dart'; +import '../componentes/text_custom.dart'; +import '../utils/dimensoes.dart'; -import '../widgets/text_custom.dart'; - -class SelecionaFilhoScreen extends StatefulWidget { - const SelecionaFilhoScreen({Key? key}) : super(key: key); +class TelaSelecionaFilho extends StatefulWidget { + const TelaSelecionaFilho({Key? key}) : super(key: key); @override - State createState() => _SelecionaFilhoScreenState(); + State createState() => _TelaSelecionaFilhoState(); } -class _SelecionaFilhoScreenState extends State { +class _TelaSelecionaFilhoState extends State { - AlunoModel? alunoModel; - List alunos = [ - AlunoModel(nome: "Maria da Silva", foto: "assets/images/aluna.jpeg", ra: '000.000.000-08', escola: 'EMEI Profª Therezinha de Jesus Alguz', idade: 14, anoEscolar: 2023), - AlunoModel(nome: "João da Silva", foto: "assets/images/aluno.jpeg", ra: '000.000.000-10', escola: 'EMEI Profª Ernestina Loureiro Miranda', idade: 12, anoEscolar: 2023), - ]; + EstudanteModelo? estudanteModelo; + + List list = []; + + @override + void initState() { + list = DadosEstaticos().alunos; + setState(() {}); + } @override Widget build(BuildContext context) { - double height = MediaQuery.of(context).size.height; - double width = MediaQuery.of(context).size.width; - return Scaffold( - backgroundColor: PaletteColors.white, + backgroundColor: PaletaCores.branco, appBar: AppBarCustom().appbar(context, 'SELECIONAR FILHO'), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Container( - child: Image.asset("assets/images/logoEduca.png",width:width * 0.4,height: height * 0.12) + child: Image.asset("assets/images/logoEduca.png",width: Dimensoes.width* 0.4,height: Dimensoes.height * 0.12) ), - SizedBox(height: height * 0.02), + SizedBox(height: Dimensoes.height * 0.02), Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ TextCustom(text: 'Estudantes',fontWeight: FontWeight.bold,size: 14.0,), Container( - width: width*0.8, + width: Dimensoes.width*0.8, decoration: BoxDecoration( borderRadius: BorderRadius.circular(5), border: Border.all( color: Colors.white ), - color: PaletteColors.greyInput + color: PaletaCores.cinzaInput ), child: DropdownButtonHideUnderline( child: DropdownButton( @@ -59,8 +61,8 @@ class _SelecionaFilhoScreenState extends State { padding: const EdgeInsets.all(8.0), child: TextCustom(text: 'Selecione'), ), - value: alunoModel, - items: alunos.map((value) => DropdownMenuItem( + value: estudanteModelo, + items: list.map((value) => DropdownMenuItem( value: value, child: Padding( padding: const EdgeInsets.all(8.0), @@ -71,9 +73,10 @@ class _SelecionaFilhoScreenState extends State { ), ) ).toList(), - onChanged: (value){ + onChanged: (EstudanteModelo? value){ setState(() { - alunoModel = value!; + print(value!.nome); + estudanteModelo = value; }); }, ), @@ -81,27 +84,27 @@ class _SelecionaFilhoScreenState extends State { ), ], ), - SizedBox(height: height * 0.02), + SizedBox(height: Dimensoes.height * 0.02), ButtonCustom( widthCustom: 0.7, heightCustom: 0.07, text: "Avançar", - size: 14.0, - colorText: PaletteColors.white, - colorButton: PaletteColors.primaryColor, - colorBorder: PaletteColors.primaryColor, + size:14, + colorText: PaletaCores.branco, + colorButton: PaletaCores.corPrimaria, + colorBorder: PaletaCores.corPrimaria, onPressed: () { - if(alunoModel!=null){ + if(estudanteModelo!=null){ Navigator.push( context, - MaterialPageRoute(builder: (context) => SituacaoEscolarScreen(alunoModel: alunoModel!,)), + MaterialPageRoute(builder: (context) => TelaSituacaoEscolar(estudanteModelo: estudanteModelo!,)), ); }else{ - showSnackBar(context, 'Selecione um estudante para avançar', Colors.red); + showSnackBar(context, 'Selecione um estudante para avançar', Colors.red); } }, ), - SizedBox(height: height * 0.02), + SizedBox(height: Dimensoes.height * 0.02), ], ), ) diff --git a/lib/telas/tela_situacao_escolar.dart b/lib/telas/tela_situacao_escolar.dart new file mode 100644 index 0000000..25c5d2d --- /dev/null +++ b/lib/telas/tela_situacao_escolar.dart @@ -0,0 +1,48 @@ +import 'package:flutter/material.dart'; +import 'package:rkm_educa_app/modelos/estudante_modelo.dart'; +import 'package:rkm_educa_app/telas/tela_avisos.dart'; +import 'package:rkm_educa_app/utils/cores.dart'; +import 'package:rkm_educa_app/componentes/text_custom.dart'; +import '../componentes/drawer_custom.dart'; + +class TelaSituacaoEscolar extends StatefulWidget { + EstudanteModelo estudanteModelo; + + TelaSituacaoEscolar({ + required this.estudanteModelo + }); + + @override + State createState() => _TelaSituacaoEscolarState(); +} + +class _TelaSituacaoEscolarState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: PaletaCores.fundoTela, + appBar: AppBar( + iconTheme: IconThemeData(color: PaletaCores.cinza), + backgroundColor: Colors.transparent, + elevation: 0, + actions: [ + Padding( + padding: const EdgeInsets.all(4.0), + child: IconButton( + onPressed: ()=>Navigator.push(context, MaterialPageRoute(builder: (context)=>TelaAvisos(estudanteModelo: widget.estudanteModelo,))), + icon: Icon(Icons.notifications_outlined,size: 32), + ) + ) + ], + ), + drawer: DrawerCustom(estudanteModelo: widget.estudanteModelo), + body: ListView( + children: [ + Center( + child: TextCustom(text: 'Situção Escolar',fontWeight: FontWeight.bold,size: 20.0,), + ), + ], + ), + ); + } +} diff --git a/lib/utils/colors.dart b/lib/utils/colors.dart deleted file mode 100644 index 75fdef2..0000000 --- a/lib/utils/colors.dart +++ /dev/null @@ -1,17 +0,0 @@ -import 'package:flutter/material.dart'; - -class PaletteColors{ - static const Color white = Colors.white; - static const Color primaryColor = Color(0xffBB0202); - static const Color secundColor = Color(0xffFF9E75); - static const Color backPage = Color(0xffdfdfdf); - static const Color bgColor = Color(0xff3A3A3A); - static const Color grey = Color (0xff757575); - static const Color divider = Color (0xffc9c9c9); - static const Color greyInput = Color (0xffE1E1E1); - static const Color lightGrey = Color(0xffD0D0D0); - static const Color midGrey = Color(0xffC4C4C4); - static const Color backGrey = Color(0xffE9E9E9); - static const Color green = Color(0xff06790c); - static const Color appBar = Color(0xff3A3A3A); -} \ No newline at end of file diff --git a/lib/utils/cores.dart b/lib/utils/cores.dart new file mode 100644 index 0000000..9b31b3e --- /dev/null +++ b/lib/utils/cores.dart @@ -0,0 +1,14 @@ +import 'package:flutter/material.dart'; + +class PaletaCores{ + static const Color branco = Colors.white; + static const Color corPrimaria = Color(0xffBB0202); + static const Color fundoTela = Color(0xffdfdfdf); + static const Color cinza = Color (0xff757575); + static const Color cinzaEscuro = Color (0xff545050); + static const Color cinzaClaro = Color (0xff7A7A7A); + static const Color divider = Color (0xffc9c9c9); + static const Color cinzaInput = Color (0xffE1E1E1); + static const Color notificacao = Color (0xffBB0202); + static const Color appBar = Color(0xff3A3A3A); +} \ No newline at end of file diff --git a/lib/utils/dimensoes.dart b/lib/utils/dimensoes.dart new file mode 100644 index 0000000..b4215f9 --- /dev/null +++ b/lib/utils/dimensoes.dart @@ -0,0 +1,13 @@ +import 'package:flutter/material.dart'; + +class Dimensoes { + static MediaQueryData media = MediaQueryData(); + static double width = 0.0; + static double height = 0.0; + + void init(BuildContext context) { + media = MediaQuery.of(context); + width = media.size.width; + height = media.size.height; + } +} \ No newline at end of file