Commit 50052a1f authored by Arham Aulia Nugraha's avatar Arham Aulia Nugraha
parents 594b4a2a caa14fd5
...@@ -3,7 +3,7 @@ import 'dart:convert'; ...@@ -3,7 +3,7 @@ import 'dart:convert';
import 'package:http/http.dart' as http; import 'package:http/http.dart' as http;
import 'package:medapp_eksad/model/contact_model.dart'; import 'package:medapp_eksad/model/contact_model.dart';
Future<bool> savecontact(nama, email, nohp, message) async { Future savecontact(nama, email, nohp, message) async {
final response = await http.post( final response = await http.post(
Uri.parse('http://10.107.121.210:8081/medapp/v1/api/contact/save'), Uri.parse('http://10.107.121.210:8081/medapp/v1/api/contact/save'),
body: jsonEncode({ body: jsonEncode({
...@@ -14,11 +14,11 @@ Future<bool> savecontact(nama, email, nohp, message) async { ...@@ -14,11 +14,11 @@ Future<bool> savecontact(nama, email, nohp, message) async {
headers: { headers: {
'Content-type': 'application/json; charset=UTF-8', 'Content-type': 'application/json; charset=UTF-8',
}); });
if (response.statusCode == 200) { // if (response.statusCode == 200) {
return true; // return true;
} else { // } else {
return false; // return false;
} // }
} }
Future<List<contact>> showcontact() async { Future<List<contact>> showcontact() async {
......
import 'package:flutter/material.dart';
import 'package:easy_sidemenu/easy_sidemenu.dart';
class DashboardAdmin extends StatefulWidget {
const DashboardAdmin({Key? key}) : super(key: key);
@override
State<DashboardAdmin> createState() => _DashboardAdminState();
}
class _DashboardAdminState extends State<DashboardAdmin> {
PageController page = PageController();
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
toolbarHeight: 60,
backgroundColor: Colors.white,
leadingWidth: 230,
leading: Padding(
padding: const EdgeInsets.symmetric(vertical: 8,horizontal: 30),
child: Container(
width: 200,
decoration: const BoxDecoration(image: DecorationImage(image: AssetImage('assets/logo/medapp-logo.png'),fit: BoxFit.fill)),
),
),
actions: [
TextButton.icon(
onPressed: () {
Navigator.pushNamed(context, '/');
},
icon: const Icon(
Icons.remove_red_eye,
),
label: const Text(
'Site Online',
),
),
TextButton.icon(
onPressed: () {
Navigator.pushNamed(context, '/');
},
icon: const Icon(
Icons.output,
),
label: const Text(
'Logout',
style: TextStyle(),
),
),
],
),
body: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
SideMenu(
showToggle: true,
controller: page,
// onDisplayModeChanged: (mode) {
// print(mode);
// },
style: SideMenuStyle(
openSideMenuWidth: 220,
displayMode: SideMenuDisplayMode.auto,
hoverColor: Colors.blue[50],
selectedColor: Colors.blue[100],
selectedTitleTextStyle: const TextStyle(color: Colors.black),
selectedIconColor: Colors.black,
unselectedIconColor: Colors.black87,
unselectedTitleTextStyle: const TextStyle(color: Colors.black87),
// decoration: BoxDecoration(
// borderRadius: BorderRadius.all(Radius.circular(10)),
// ),
backgroundColor: Colors.blueAccent[200],
),
title: Column(
children: [
// ConstrainedBox(
// constraints: const BoxConstraints(
// maxHeight: 150,
// maxWidth: 150,
// ),
// child: Image.asset(
// 'assets/logo/medapp-logo.png',
// ),
// ),
// const Divider(
// indent: 8.0,
// endIndent: 8.0,
// ),
Container(height: 20,)
],
),
footer: const Padding(
padding: EdgeInsets.all(8.0),
child: Text(
'Medapp By Eksad',
style: TextStyle(fontSize: 15),
),
),
items: [
SideMenuItem(
priority: 0,
title: 'Dashboard',
onTap: () {
page.jumpToPage(0);
},
icon: const Icon(Icons.home),
// badgeContent: const Text(
// '3',
// style: TextStyle(color: Colors.white),
// ),
),
SideMenuItem(
priority: 2,
title: 'Files',
onTap: () {
page.jumpToPage(2);
},
icon: const Icon(Icons.file_copy_rounded),
),
SideMenuItem(
priority: 3,
title: 'WhatsApp Number',
onTap: () {
page.jumpToPage(3);
},
icon: const Icon(Icons.whatsapp),
),
SideMenuItem(
priority: 4,
title: 'Settings',
onTap: () {
page.jumpToPage(4);
},
icon: const Icon(Icons.settings),
),
],
),
Expanded(
child: PageView(
controller: page,
children: [
Container(
color: Colors.white,
child: const Center(
child: Text(
'Dashboard',
style: TextStyle(fontSize: 35),
),
),
),
Container(
color: Colors.white,
child: const Center(
child: Text(
'Users',
style: TextStyle(fontSize: 35),
),
),
),
Container(
color: Colors.white,
child: const Center(
child: Text(
'Files',
style: TextStyle(fontSize: 35),
),
),
),
Container(
color: Colors.white,
child: const Center(
child: Text(
'Download',
style: TextStyle(fontSize: 35),
),
),
),
Container(
color: Colors.white,
child: const Center(
child: Text(
'Settings',
style: TextStyle(fontSize: 35),
),
),
),
],
),
),
],
),
);
}
}
...@@ -35,7 +35,7 @@ class _HomePageState extends State<HomePage> { ...@@ -35,7 +35,7 @@ class _HomePageState extends State<HomePage> {
final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>(); final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
setPageTitle('MeddApp by Eksad', context); setPageTitle('MedApp by Eksad', context);
var screenSize = MediaQuery.of(context).size; var screenSize = MediaQuery.of(context).size;
return Scaffold( return Scaffold(
key: _scaffoldKey, key: _scaffoldKey,
...@@ -44,7 +44,7 @@ class _HomePageState extends State<HomePage> { ...@@ -44,7 +44,7 @@ class _HomePageState extends State<HomePage> {
? AppBarKecil() ? AppBarKecil()
: AppbarHomeLarge(screenSize, context, Colors.blue, Colors.blue, : AppbarHomeLarge(screenSize, context, Colors.blue, Colors.blue,
Colors.black, Colors.black, Colors.black), Colors.black, Colors.black, Colors.black),
drawer: const DrawerMeddApp(), drawer: const DrawerMedApp(),
body: ResponsiveWidget.isSmallScreen(context) body: ResponsiveWidget.isSmallScreen(context)
? ListView( ? ListView(
children: const [ children: const [
......
...@@ -21,8 +21,8 @@ class _loginState extends State<login> { ...@@ -21,8 +21,8 @@ class _loginState extends State<login> {
final formKey = GlobalKey<FormState>(); final formKey = GlobalKey<FormState>();
String _usmail = ''; String _usmail = '';
String _uspswd = ''; String _uspswd = '';
TextEditingController _editingController = TextEditingController(); final TextEditingController _editingController = TextEditingController();
TextEditingController _editingController2 = TextEditingController(); final TextEditingController _editingController2 = TextEditingController();
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:medapp_eksad/dashboard/admin/main_dashboard_admin.dart';
import 'package:medapp_eksad/homepage.dart'; import 'package:medapp_eksad/homepage.dart';
import 'package:medapp_eksad/login.dart'; import 'package:medapp_eksad/login.dart';
import 'package:medapp_eksad/register.dart'; import 'package:medapp_eksad/register.dart';
...@@ -25,6 +26,7 @@ class MyApp extends StatelessWidget { ...@@ -25,6 +26,7 @@ class MyApp extends StatelessWidget {
'/contact': (context) => const ContactUs(), '/contact': (context) => const ContactUs(),
'/login': (context) => const login(), '/login': (context) => const login(),
'/register': (context) => const Register(), '/register': (context) => const Register(),
'/dashboard': (context) => const DashboardAdmin()
}, },
); );
} }
......
...@@ -37,13 +37,13 @@ class _ContactUsState extends State<ContactUs> { ...@@ -37,13 +37,13 @@ class _ContactUsState extends State<ContactUs> {
? AppBarKecil() ? AppBarKecil()
: AppbarHomeLarge(screenSize, context, Colors.black, Colors.black, : AppbarHomeLarge(screenSize, context, Colors.black, Colors.black,
Colors.black, Colors.black, Colors.blue), Colors.black, Colors.black, Colors.blue),
drawer: DrawerMeddApp(), drawer: const DrawerMedApp(),
body: ResponsiveWidget.isSmallScreen(context) body: ResponsiveWidget.isSmallScreen(context)
? ListView( ? ListView(
children: [ children: const [
const ContactUs1_small(), ContactUs1_small(),
ContactUs2_small(), ContactUs2_small(),
const FooterSmall(), FooterSmall(),
], ],
) )
: ListView( : ListView(
......
...@@ -4,6 +4,7 @@ import 'package:google_fonts/google_fonts.dart'; ...@@ -4,6 +4,7 @@ import 'package:google_fonts/google_fonts.dart';
// import 'package:mcs_flutter/const/conts.dart'; // import 'package:mcs_flutter/const/conts.dart';
import 'dart:convert'; import 'dart:convert';
import 'package:http/http.dart' as http; import 'package:http/http.dart' as http;
import 'package:medapp_eksad/api/contact_api.dart';
import 'package:medapp_eksad/widget/button_color.dart'; import 'package:medapp_eksad/widget/button_color.dart';
class ContactUs2 extends StatelessWidget { class ContactUs2 extends StatelessWidget {
...@@ -54,7 +55,7 @@ class ContactUs2 extends StatelessWidget { ...@@ -54,7 +55,7 @@ class ContactUs2 extends StatelessWidget {
'\n' '\n'
'an outsourcing partner ' 'an outsourcing partner '
'you can trust and thrive with', 'you can trust and thrive with',
textAlign: TextAlign.justify, textAlign: TextAlign.left,
style: GoogleFonts.poppins( style: GoogleFonts.poppins(
color: Colors.white, color: Colors.white,
fontSize: 30, fontSize: 30,
...@@ -251,10 +252,10 @@ class ContactUs2 extends StatelessWidget { ...@@ -251,10 +252,10 @@ class ContactUs2 extends StatelessWidget {
style: Btn_Submit(), style: Btn_Submit(),
onPressed: () async { onPressed: () async {
if (_formKey.currentState!.validate()) { if (_formKey.currentState!.validate()) {
final response = await SendEmail( final response = await savecontact(
nameController.value.text, nameController.value.text,
phoneController.value.text,
emailController.value.text, emailController.value.text,
phoneController.value.text,
messageController.value.text); messageController.value.text);
ScaffoldMessenger.of(context).showSnackBar( ScaffoldMessenger.of(context).showSnackBar(
response == 200 response == 200
...@@ -289,28 +290,4 @@ class ContactUs2 extends StatelessWidget { ...@@ -289,28 +290,4 @@ class ContactUs2 extends StatelessWidget {
), ),
); );
} }
Future SendEmail(
String name, String phone, String email, String message) async {
final url = Uri.parse('https://api.emailjs.com/api/v1.0/email/send');
const serviceId = 'service_wava70j';
const templateId = 'template_koc73cj';
const userId = 'h4BmDnyWlm3OziBDx';
final response = await http.post(url,
headers: {
'Content-Type': 'application/json'
}, //This line makes sure it works for all platforms.
body: json.encode({
'service_id': serviceId,
'template_id': templateId,
'user_id': userId,
'template_params': {
'from_name': name,
'from_phone': phone,
'to_email': email,
'message': message
}
}));
return response.statusCode;
}
} }
...@@ -165,16 +165,16 @@ class Footer extends StatelessWidget { ...@@ -165,16 +165,16 @@ class Footer extends StatelessWidget {
Container( Container(
height: screenSize.height * 0.04, height: screenSize.height * 0.04,
child: const itemBawah( child: const itemBawah(
item: 'Service', item: 'Solutions',
routeName: '/service', routeName: '/solutions',
), ),
), ),
const Spacer(), const Spacer(),
Container( Container(
height: screenSize.height * 0.04, height: screenSize.height * 0.04,
child: const itemBawah( child: const itemBawah(
item: 'Career', item: 'Contact Us',
routeName: '/career', routeName: '/contact',
), ),
), ),
], ],
...@@ -204,7 +204,7 @@ class Footer extends StatelessWidget { ...@@ -204,7 +204,7 @@ class Footer extends StatelessWidget {
height: screenSize.height * 0.04, height: screenSize.height * 0.04,
child: const itemBawah( child: const itemBawah(
item: 'Retained Search', item: 'Retained Search',
routeName: '/service', routeName: '/solutions',
), ),
), ),
const Spacer(), const Spacer(),
...@@ -212,7 +212,7 @@ class Footer extends StatelessWidget { ...@@ -212,7 +212,7 @@ class Footer extends StatelessWidget {
height: screenSize.height * 0.04, height: screenSize.height * 0.04,
child: const itemBawah( child: const itemBawah(
item: 'Dedicated Services', item: 'Dedicated Services',
routeName: '/service', routeName: '/solutions',
), ),
), ),
const Spacer(), const Spacer(),
...@@ -220,7 +220,7 @@ class Footer extends StatelessWidget { ...@@ -220,7 +220,7 @@ class Footer extends StatelessWidget {
height: screenSize.height * 0.04, height: screenSize.height * 0.04,
child: const itemBawah( child: const itemBawah(
item: 'Contract Services', item: 'Contract Services',
routeName: '/service', routeName: '/solutions',
), ),
), ),
const Spacer(), const Spacer(),
...@@ -228,7 +228,7 @@ class Footer extends StatelessWidget { ...@@ -228,7 +228,7 @@ class Footer extends StatelessWidget {
height: screenSize.height * 0.04, height: screenSize.height * 0.04,
child: const itemBawah( child: const itemBawah(
item: 'Recruitment', item: 'Recruitment',
routeName: '/service', routeName: '/solutions',
), ),
), ),
], ],
...@@ -287,7 +287,7 @@ class Footer extends StatelessWidget { ...@@ -287,7 +287,7 @@ class Footer extends StatelessWidget {
title: TextButton( title: TextButton(
onPressed: () { onPressed: () {
launch( launch(
'mailto:Hello@eksad.com?subject=Hello saya ingin bertanya tentang protalent'); 'mailto:Hello@eksad.com?subject=Hello saya ingin bertanya tentang Medapp');
}, },
child: Container( child: Container(
height: screenSize.height * 0.04, height: screenSize.height * 0.04,
......
...@@ -11,7 +11,7 @@ class Home2 extends StatelessWidget { ...@@ -11,7 +11,7 @@ class Home2 extends StatelessWidget {
return Container( return Container(
width: screenSize.width * 0.5, width: screenSize.width * 0.5,
color: const Color.fromARGB(255, 227, 235, 253), color: const Color.fromARGB(255, 227, 235, 253),
height: screenSize.height*1.1, height: screenSize.height * 0.9,
padding: EdgeInsets.only( padding: EdgeInsets.only(
left: screenSize.width * 0.10, left: screenSize.width * 0.10,
right: screenSize.width * 0.10, right: screenSize.width * 0.10,
...@@ -20,19 +20,17 @@ class Home2 extends StatelessWidget { ...@@ -20,19 +20,17 @@ class Home2 extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Spacer( Spacer(
flex: 3, flex: 2,
), ),
Container( Container(
width: screenSize.width, width: screenSize.width,
child: Text('How do we help ?', child: Text('How do we help ?',
style: GoogleFonts.poppins( style: GoogleFonts.poppins(
fontSize: 30, fontSize: 35,
color: const Color.fromARGB(255, 12, 66, 101), color: const Color.fromARGB(255, 12, 66, 101),
fontWeight: FontWeight.bold)), fontWeight: FontWeight.bold)),
), ),
Spacer( SizedBox(height: 10),
flex: 3,
),
Container( Container(
width: screenSize.width, width: screenSize.width,
height: 100, height: 100,
...@@ -46,36 +44,37 @@ class Home2 extends StatelessWidget { ...@@ -46,36 +44,37 @@ class Home2 extends StatelessWidget {
height: 1.6, height: 1.6,
fontWeight: FontWeight.w500)), fontWeight: FontWeight.w500)),
), ),
Spacer( SizedBox(height: 10),
flex: 2, Container(
), // padding: const EdgeInsets.only(left: 1),
Column( // width: screenSize.width * 0.3,
// mainAxisAlignment: MainAxisAlignment.start, // height: screenSize.height * 0.35,
children: [ child: Column(
list_help( // mainAxisAlignment: MainAxisAlignment.start,
children: [
list_help(
screenSize: screenSize,
titel: 'Costs are getting more expensive'),
list_help(
screenSize: screenSize, screenSize: screenSize,
titel: 'Costs are getting more expensive'), titel: "Demographic Change",
list_help( ),
screenSize: screenSize, list_help(
titel: "Demographic Change", screenSize: screenSize,
), titel: "Rare talents",
list_help( ),
screenSize: screenSize, list_help(
titel: "Rare talents", screenSize: screenSize,
), titel: "Rapid technological change",
list_help( ),
screenSize: screenSize, list_help(
titel: "Rapid technological change", screenSize: screenSize,
), titel: "Changes in consumer behavior",
list_help( ),
screenSize: screenSize, ],
titel: "Changes in consumer behavior", ),
),
],
),
Spacer(
flex: 2,
), ),
SizedBox(height: 30),
Container( Container(
width: screenSize.width, width: screenSize.width,
height: 100, height: 100,
...@@ -91,16 +90,14 @@ class Home2 extends StatelessWidget { ...@@ -91,16 +90,14 @@ class Home2 extends StatelessWidget {
height: 1.6, height: 1.6,
fontWeight: FontWeight.w500)), fontWeight: FontWeight.w500)),
), ),
Spacer( SizedBox(height: 10),
flex:1,
),
Container( Container(
width: screenSize.width, width: screenSize.width,
height: 100, height: 100,
child: Text( child: Text(
'MedApps combines practice management and clinical workflows into one seamless, modern interface. ' 'MedApps combines practice management and clinical workflows into one seamless, modern interface. '
'Manage all patient interactions securely on the go, or in your practice.' 'Manage all patient interactions securely on the go, or in your practice.'
'Benefit from server-free* infrastructure, automatic upgrades and simple licensing.', ' Benefit from server-free* infrastructure, automatic upgrades and simple licensing.',
textAlign: TextAlign.justify, textAlign: TextAlign.justify,
style: GoogleFonts.poppins( style: GoogleFonts.poppins(
fontSize: 16, fontSize: 16,
...@@ -108,9 +105,6 @@ class Home2 extends StatelessWidget { ...@@ -108,9 +105,6 @@ class Home2 extends StatelessWidget {
height: 1.6, height: 1.6,
fontWeight: FontWeight.w500)), fontWeight: FontWeight.w500)),
), ),
Spacer(
flex: 2,
),
], ],
), ),
); );
...@@ -127,6 +121,7 @@ class list_help extends StatelessWidget { ...@@ -127,6 +121,7 @@ class list_help extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return ListTile( return ListTile(
visualDensity: VisualDensity(vertical: -4),
leading: const Icon( leading: const Icon(
Icons.circle_rounded, Icons.circle_rounded,
size: 12, size: 12,
...@@ -134,7 +129,7 @@ class list_help extends StatelessWidget { ...@@ -134,7 +129,7 @@ class list_help extends StatelessWidget {
), ),
title: Container( title: Container(
// padding: const EdgeInsets.only(left: 10), // padding: const EdgeInsets.only(left: 10),
// width: screenSize.width * 0.35, width: screenSize.width * 2,
// height: screenSize.height * 0.1, // height: screenSize.height * 0.1,
child: Text( child: Text(
titel, titel,
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:medapp_eksad/appbar/appbar_home.dart'; import 'package:medapp_eksad/appbar/appbar_home.dart';
import 'package:medapp_eksad/screen/contact_us/contact_us2.dart';
import 'package:medapp_eksad/screen/footer.dart'; import 'package:medapp_eksad/screen/footer.dart';
import 'package:medapp_eksad/screen/solution/our_solution.dart'; import 'package:medapp_eksad/screen/solution/our_solution.dart';
import 'package:medapp_eksad/screen/solution/our_solution2.dart'; import 'package:medapp_eksad/screen/solution/our_solution2.dart';
import 'package:medapp_eksad/screen/solution/home3.dart'; import 'package:medapp_eksad/screen/solution/our_solution3.dart';
import 'package:medapp_eksad/screen_small/small_footer.dart';
import 'package:medapp_eksad/screen_small/small_solution/small_solution1.dart';
import 'package:medapp_eksad/screen_small/small_solution/small_solution2.dart';
import 'package:medapp_eksad/widget/drawer.dart';
import 'package:medapp_eksad/widget/responsive.dart'; import 'package:medapp_eksad/widget/responsive.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
...@@ -23,6 +28,16 @@ class Solutions extends StatefulWidget { ...@@ -23,6 +28,16 @@ class Solutions extends StatefulWidget {
class _SolutionsState extends State<Solutions> { class _SolutionsState extends State<Solutions> {
final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>(); final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();
ScrollController controller2 = ScrollController();
void _scrollToIndex(double index) {
controller2.animateTo(index,
duration: const Duration(seconds: 1),
curve: Curves.fastLinearToSlowEaseIn);
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
setPageTitle('MeddApp Solutions', context); setPageTitle('MeddApp Solutions', context);
...@@ -33,17 +48,57 @@ class _SolutionsState extends State<Solutions> { ...@@ -33,17 +48,57 @@ class _SolutionsState extends State<Solutions> {
? AppBarKecil() ? AppBarKecil()
: AppbarHomeLarge(screenSize, context, Colors.black, Colors.black, : AppbarHomeLarge(screenSize, context, Colors.black, Colors.black,
Colors.blue, Colors.black, Colors.black), Colors.blue, Colors.black, Colors.black),
body: ListView( drawer: const DrawerMedApp(),
children: const [ body: ResponsiveWidget.isSmallScreen(context)
OurSolution(), ? ListView(
OurSolution2(), children: const [
Home3(), SmallOurSolution(),
Footer(), SmallOurSolution2(),
],
), FooterSmall(),
],
)
: ListView(
controller: controller2,
children: [
OurSolution(button: ButtonSolution(context),),
OurSolution2(),
OurSolution3(),
ContactUs2(),
Footer(),
],
),
); );
} }
ElevatedButton ButtonSolution(BuildContext context) {
return ElevatedButton(
onPressed: () {
_scrollToIndex(1500);
},
style: ElevatedButton.styleFrom(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10),
),
primary: Color.fromARGB(255, 48, 104, 170),
// shape: MaterialStateProperty.all(RoundedRectangleBorder(borderRadius: BorderRadius.circular(30.0))),
),
child: const Text(
'FREE DEMO',
style: TextStyle(
fontSize: 19,
fontWeight: FontWeight.w500,
letterSpacing: 1.1,
color: Colors.white),
),
);
}
AppBar AppBarKecil() { AppBar AppBarKecil() {
return AppBar( return AppBar(
leading: IconButton( leading: IconButton(
......
import 'package:flutter/material.dart';
import 'package:medapp_eksad/animation/animasi_kiri_kanan.dart';
import 'package:medapp_eksad/animation/animasi_kanan_kiri.dart';
class Home3 extends StatefulWidget {
const Home3({Key? key}) : super(key: key);
@override
State<Home3> createState() => _Home3State();
}
class _Home3State extends State<Home3> {
@override
Widget build(BuildContext context) {
var screenSize = MediaQuery.of(context).size;
return Container(
padding: const EdgeInsets.all(10),
width: screenSize.width,
height: screenSize.height * 0.75,
child: Column(
children: <Widget>[
const SizedBox(
height:40,
),
Text("MedApps Features",
style: TextStyle(
fontSize: 32,
fontWeight: FontWeight.bold,
color: Colors.blue[900]
),
),
const SizedBox(
height: 40,
),
Row(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
SizedBox(
width: screenSize.width * 0.2,
child: Column(
children: [
Container(
padding: EdgeInsets.only(top: screenSize.height * 0.01),
width: screenSize.width * 0.5,
child: Animasi_Kiri_Kanan(
screenSize: screenSize,
widget: Image.asset(
'assets/icons/our_solution2.png',
height: 50,
width: 50,
),
),
),
const SizedBox(
height: 20,
),
Container(
padding: const EdgeInsets.only(top: 5),
width: 250,
height: 50,
child: Text(
"RETAINED SEARCH",
style: TextStyle(
color: Colors.blue[800],
fontSize: 17,
letterSpacing: 1.1,
fontWeight: FontWeight.w600
),
textAlign: TextAlign.center,
)
),
const SizedBox(height: 10,),
SizedBox(
width: 220,
height: screenSize.height * 0.30,
child: const Animasi_Kanan_Kiri(
judul: "We not only keep our eyes wide open for talented individuals, we make it an active endeavour. One that digs deeper to find you that star employee ahead of your competition.",
),
),
],
),
),
SizedBox(
width: screenSize.width * 0.2,
child: Column(
children: [
Container(
padding: EdgeInsets.only(top: screenSize.height * 0.01),
width: screenSize.width * 0.5,
child: Animasi_Kiri_Kanan(
screenSize: screenSize,
widget: Image.asset(
'assets/icons/our_solution1.png',
height: 50,
width: 50,
),
),
),
const SizedBox(
height: 20,
),
Container(
padding: const EdgeInsets.only(top: 5),
width: 250,
height: 50,
child: Text(
"DEDICATED SERVICES",
style: TextStyle(
color: Colors.blue[800],
fontSize: 17,
letterSpacing: 1.1,
fontWeight: FontWeight.w600
),
textAlign: TextAlign.center,
)
),
const SizedBox(height: 10,),
SizedBox(
width: 220,
height: screenSize.height * 0.30,
child: const Animasi_Kanan_Kiri(
judul: "Our dedicated team of recruiters help fulfill your critical hiring needs in the mid-level and executive positions making the recruitment cycle short and efficient.",
),
),
],
),
),
SizedBox(
width: screenSize.width * 0.2,
child: Column(
children: [
Container(
padding: EdgeInsets.only(top: screenSize.height * 0.01),
width: screenSize.width * 0.5,
child: Animasi_Kiri_Kanan(
screenSize: screenSize,
widget: Image.asset(
'assets/icons/our_solution3.png',
height: 50,
width: 50,
),
),
),
const SizedBox(
height: 20,
),
Container(
padding: const EdgeInsets.only(top: 5),
width: 250,
height: 50,
child: Text(
"CONTRACT SERVICES",
style: TextStyle(
color: Colors.blue[800],
fontSize: 17,
letterSpacing: 1.1,
fontWeight: FontWeight.w600
),
textAlign: TextAlign.center,
)
),
const SizedBox(height: 10,),
SizedBox(
width: 220,
height: screenSize.height * 0.30,
child: const Animasi_Kanan_Kiri(
judul: "Time sensitive projects are treated with urgency to provide skilled technical resources needed for quick and cost-effective turnaround.",
),
),
],
),
),
SizedBox(
width: screenSize.width * 0.2,
child: Column(
children: [
Container(
padding: EdgeInsets.only(top: screenSize.height * 0.01),
width: screenSize.width * 0.5,
child: Animasi_Kiri_Kanan(
screenSize: screenSize,
widget: Image.asset(
'assets/icons/our_solution4.png',
height: 50,
width: 50,
),
),
),
const SizedBox(
height: 20,
),
Container(
padding: const EdgeInsets.only(top: 5),
width: 250,
height: 50,
child: Text(
"RECRUITMENT PROCESS OUTSOURCING",
style: TextStyle(
color: Colors.blue[800],
fontSize: 17,
letterSpacing: 1.1,
fontWeight: FontWeight.w600
),
textAlign: TextAlign.center,
)
),
const SizedBox(height: 10,),
SizedBox(
width: 220,
height: screenSize.height * 0.30,
child: const Animasi_Kanan_Kiri(
judul: "Hire the best without ever having to face the logistics. From the very beginning till actually getting your next \"rockstar\"employees to walk in and take their positions on your floors.",
),
),
],
),
),
],
)
],
),
);
}
}
...@@ -2,14 +2,12 @@ import 'package:flutter/material.dart'; ...@@ -2,14 +2,12 @@ import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart'; import 'package:google_fonts/google_fonts.dart';
import 'package:show_up_animation/show_up_animation.dart'; import 'package:show_up_animation/show_up_animation.dart';
class OurSolution extends StatefulWidget {
const OurSolution({Key? key}) : super(key: key);
@override class OurSolution extends StatelessWidget {
State<OurSolution> createState() => _OurSolutionState(); const OurSolution({Key? key,required this.button}) : super(key: key);
}
final Widget button;
class _OurSolutionState extends State<OurSolution> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
var screenSize = MediaQuery.of(context).size; var screenSize = MediaQuery.of(context).size;
...@@ -47,6 +45,10 @@ class _OurSolutionState extends State<OurSolution> { ...@@ -47,6 +45,10 @@ class _OurSolutionState extends State<OurSolution> {
Container( Container(
height: screenSize.height * 0.10, height: screenSize.height * 0.10,
child: ShowUpAnimation( child: ShowUpAnimation(
delayStart: const Duration(seconds: 1),
curve: Curves.bounceIn,
direction: Direction.horizontal,
offset: -0.2,
child: Text( child: Text(
'Find & Get the Best Talent', 'Find & Get the Best Talent',
style: GoogleFonts.poppins( style: GoogleFonts.poppins(
...@@ -63,9 +65,8 @@ class _OurSolutionState extends State<OurSolution> { ...@@ -63,9 +65,8 @@ class _OurSolutionState extends State<OurSolution> {
height: screenSize.height * 0.15, height: screenSize.height * 0.15,
child: ShowUpAnimation( child: ShowUpAnimation(
delayStart: const Duration(seconds: 1), delayStart: const Duration(seconds: 1),
curve: Curves.bounceIn, curve: Curves.decelerate,
direction: Direction.horizontal, direction: Direction.horizontal,
offset: -0.2,
child: Text( child: Text(
'Register for free now, find our Best Talent, and enjoy our unlimited hires at a low cost', 'Register for free now, find our Best Talent, and enjoy our unlimited hires at a low cost',
style: GoogleFonts.poppins( style: GoogleFonts.poppins(
...@@ -85,26 +86,7 @@ class _OurSolutionState extends State<OurSolution> { ...@@ -85,26 +86,7 @@ class _OurSolutionState extends State<OurSolution> {
curve: Curves.bounceIn, curve: Curves.bounceIn,
direction: Direction.horizontal, direction: Direction.horizontal,
offset: -0.2, offset: -0.2,
child: ElevatedButton( child: button,
onPressed: () {
Navigator.pushNamed(context, '/register');
},
style: ElevatedButton.styleFrom(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10),
),
primary: Color.fromARGB(255, 48, 104, 170),
// shape: MaterialStateProperty.all(RoundedRectangleBorder(borderRadius: BorderRadius.circular(30.0))),
),
child: const Text(
'FREE DEMO',
style: TextStyle(
fontSize: 19,
fontWeight: FontWeight.w500,
letterSpacing: 1.1,
color: Colors.white),
),
),
), ),
), ),
const SizedBox( const SizedBox(
...@@ -118,3 +100,126 @@ class _OurSolutionState extends State<OurSolution> { ...@@ -118,3 +100,126 @@ class _OurSolutionState extends State<OurSolution> {
); );
} }
} }
// class OurSolution extends StatefulWidget {
// const OurSolution({Key? key,required this.button}) : super(key: key);
//
// final Widget button;
//
// @override
// State<OurSolution> createState() => _OurSolutionState();
// }
//
// class _OurSolutionState extends State<OurSolution> {
// @override
// Widget build(BuildContext context) {
// var screenSize = MediaQuery.of(context).size;
// return Stack(
// children: [
// Container(
// width: screenSize.width,
// height: screenSize.height * 0.8,
// decoration: const BoxDecoration(
// image: DecorationImage(
// image: AssetImage(
// "assets/images/solution.jpg",
// ),
// alignment: Alignment.topCenter,
// fit: BoxFit.cover),
// ),
// ),
// const SizedBox(
// height: 10,
// ),
// SizedBox(
// width: screenSize.width,
// height: screenSize.height * 0.5,
//
// // ),
// ),
// Container(
// padding: EdgeInsets.only(right: screenSize.width * 0.5),
// child: Center(
// child: Column(
// crossAxisAlignment: CrossAxisAlignment.center,
// mainAxisAlignment: MainAxisAlignment.spaceEvenly,
// children: [
// const SizedBox(height: 70),
// Container(
// height: screenSize.height * 0.10,
// child: ShowUpAnimation(
// delayStart: const Duration(seconds: 1),
// curve: Curves.bounceIn,
// direction: Direction.horizontal,
// offset: -0.2,
// child: Text(
// 'Find & Get the Best Talent',
// style: GoogleFonts.poppins(
// fontSize: 34,
// fontWeight: FontWeight.bold,
// color: Colors.white),
// textAlign: TextAlign.center,
// ),
// ),
// ),
// const SizedBox(height: 10),
// Container(
// width: screenSize.width * 0.28,
// height: screenSize.height * 0.15,
// child: ShowUpAnimation(
// delayStart: const Duration(seconds: 1),
// curve: Curves.decelerate,
// direction: Direction.horizontal,
// child: Text(
// 'Register for free now, find our Best Talent, and enjoy our unlimited hires at a low cost',
// style: GoogleFonts.poppins(
// fontSize: 18,
// letterSpacing: 1.8,
// height: 1.4,
// fontWeight: FontWeight.bold,
// color: Colors.white),
// textAlign: TextAlign.center,
// ),
// ),
// ),
// Container(
// height: 50,
// child: ShowUpAnimation(
// delayStart: const Duration(seconds: 1),
// curve: Curves.bounceIn,
// direction: Direction.horizontal,
// offset: -0.2,
// child: ElevatedButton(
// onPressed: () {
// Navigator.pushNamed(context, '/register');
// },
// style: ElevatedButton.styleFrom(
// shape: RoundedRectangleBorder(
// borderRadius: BorderRadius.circular(10),
// ),
// primary: Color.fromARGB(255, 48, 104, 170),
// // shape: MaterialStateProperty.all(RoundedRectangleBorder(borderRadius: BorderRadius.circular(30.0))),
// ),
// child: const Text(
// 'FREE DEMO',
// style: TextStyle(
// fontSize: 19,
// fontWeight: FontWeight.w500,
// letterSpacing: 1.1,
// color: Colors.white),
// ),
// ),
// ),
// ),
// const SizedBox(
// height: 10,
// )
// ],
// ),
// ),
// ),
// ],
// );
// }
// }
import 'package:flutter/material.dart';
import 'package:medapp_eksad/animation/animasi_kiri_kanan.dart';
import 'package:medapp_eksad/animation/animasi_kanan_kiri.dart';
class OurSolution3 extends StatefulWidget {
const OurSolution3({Key? key}) : super(key: key);
@override
State<OurSolution3> createState() => _OurSolution3State();
}
class _OurSolution3State extends State<OurSolution3> {
@override
Widget build(BuildContext context) {
var screenSize = MediaQuery.of(context).size;
return Container(
padding: const EdgeInsets.all(10),
width: screenSize.width,
height: screenSize.height * 0.83,
child: Column(
children: <Widget>[
const SizedBox(
height:40,
),
Text("MedApps Features",
style: TextStyle(
fontSize: 32,
fontWeight: FontWeight.bold,
color: Colors.blue[900]
),
),
const SizedBox(
height: 40,
),
Row(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
SizedBox(
width: screenSize.width * 0.2,
child: Column(
children: [
Container(
padding: EdgeInsets.only(top: screenSize.height * 0.01),
width: screenSize.width * 0.5,
child: Animasi_Kiri_Kanan(
screenSize: screenSize,
widget: Image.asset(
'assets/icons/our_solution2.png',
height: 50,
width: 50,
),
),
),
const SizedBox(
height: 20,
),
Container(
padding: const EdgeInsets.only(top: 5),
width: 250,
height: 50,
child: Text(
"RETAINED SEARCH",
style: TextStyle(
color: Colors.blue[800],
fontSize: 17,
letterSpacing: 1.1,
fontWeight: FontWeight.w600
),
textAlign: TextAlign.center,
)
),
const SizedBox(height: 10,),
SizedBox(
width: 220,
height: screenSize.height * 0.30,
child: const Animasi_Kanan_Kiri(
judul: "We not only keep our eyes wide open for talented individuals, we make it an active endeavour. One that digs deeper to find you that star employee ahead of your competition.",
),
),
],
),
),
SizedBox(
width: screenSize.width * 0.2,
child: Column(
children: [
Container(
padding: EdgeInsets.only(top: screenSize.height * 0.01),
width: screenSize.width * 0.5,
child: Animasi_Kiri_Kanan(
screenSize: screenSize,
widget: Image.asset(
'assets/icons/our_solution1.png',
height: 50,
width: 50,
),
),
),
const SizedBox(
height: 20,
),
Container(
padding: const EdgeInsets.only(top: 5),
width: 250,
height: 50,
child: Text(
"DEDICATED SERVICES",
style: TextStyle(
color: Colors.blue[800],
fontSize: 17,
letterSpacing: 1.1,
fontWeight: FontWeight.w600
),
textAlign: TextAlign.center,
)
),
const SizedBox(height: 10,),
SizedBox(
width: 220,
height: screenSize.height * 0.30,
child: const Animasi_Kanan_Kiri(
judul: "Our dedicated team of recruiters help fulfill your critical hiring needs in the mid-level and executive positions making the recruitment cycle short and efficient.",
),
),
],
),
),
SizedBox(
width: screenSize.width * 0.2,
child: Column(
children: [
Container(
padding: EdgeInsets.only(top: screenSize.height * 0.01),
width: screenSize.width * 0.5,
child: Animasi_Kiri_Kanan(
screenSize: screenSize,
widget: Image.asset(
'assets/icons/our_solution3.png',
height: 50,
width: 50,
),
),
),
const SizedBox(
height: 20,
),
Container(
padding: const EdgeInsets.only(top: 5),
width: 250,
height: 50,
child: Text(
"CONTRACT SERVICES",
style: TextStyle(
color: Colors.blue[800],
fontSize: 17,
letterSpacing: 1.1,
fontWeight: FontWeight.w600
),
textAlign: TextAlign.center,
)
),
const SizedBox(height: 10,),
SizedBox(
width: 220,
height: screenSize.height * 0.30,
child: const Animasi_Kanan_Kiri(
judul: "Time sensitive projects are treated with urgency to provide skilled technical resources needed for quick and cost-effective turnaround.",
),
),
],
),
),
SizedBox(
width: screenSize.width * 0.2,
child: Column(
children: [
Container(
padding: EdgeInsets.only(top: screenSize.height * 0.01),
width: screenSize.width * 0.5,
child: Animasi_Kiri_Kanan(
screenSize: screenSize,
widget: Image.asset(
'assets/icons/our_solution4.png',
height: 50,
width: 50,
),
),
),
const SizedBox(
height: 20,
),
Container(
padding: const EdgeInsets.only(top: 5),
width: 250,
height: 50,
child: Text(
"RECRUITMENT PROCESS OUTSOURCING",
style: TextStyle(
color: Colors.blue[800],
fontSize: 17,
letterSpacing: 1.1,
fontWeight: FontWeight.w600
),
textAlign: TextAlign.center,
)
),
const SizedBox(height: 10,),
SizedBox(
width: 220,
height: screenSize.height * 0.30,
child: const Animasi_Kanan_Kiri(
judul: "Hire the best without ever having to face the logistics. From the very beginning till actually getting your next \"rockstar\"employees to walk in and take their positions on your floors.",
),
),
],
),
),
],
)
],
),
);
}
}
...@@ -4,6 +4,7 @@ import 'package:google_fonts/google_fonts.dart'; ...@@ -4,6 +4,7 @@ import 'package:google_fonts/google_fonts.dart';
// import 'package:mcs_flutter/const/conts.dart'; // import 'package:mcs_flutter/const/conts.dart';
import 'dart:convert'; import 'dart:convert';
import 'package:http/http.dart' as http; import 'package:http/http.dart' as http;
import 'package:medapp_eksad/api/contact_api.dart';
import 'package:medapp_eksad/widget/button_color.dart'; import 'package:medapp_eksad/widget/button_color.dart';
...@@ -26,7 +27,7 @@ class _ContactUs2_smallState extends State<ContactUs2_small> { ...@@ -26,7 +27,7 @@ class _ContactUs2_smallState extends State<ContactUs2_small> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
var screenSize = MediaQuery.of(context).size; var screenSize = MediaQuery.of(context).size;
return Container( return Container(
height: screenSize.height * 1.75, height: screenSize.height * 1.8,
width: screenSize.width, width: screenSize.width,
padding: EdgeInsets.symmetric(horizontal: 15), padding: EdgeInsets.symmetric(horizontal: 15),
// color: Colors.blue, // color: Colors.blue,
...@@ -75,6 +76,7 @@ class _ContactUs2_smallState extends State<ContactUs2_small> { ...@@ -75,6 +76,7 @@ class _ContactUs2_smallState extends State<ContactUs2_small> {
style: GoogleFonts.poppins( style: GoogleFonts.poppins(
color: Colors.white, fontSize: 18, letterSpacing: 1.2)), color: Colors.white, fontSize: 18, letterSpacing: 1.2)),
), ),
SizedBox(height: 5,),
Center( Center(
child: Form( child: Form(
key: _formKey, key: _formKey,
...@@ -232,10 +234,10 @@ class _ContactUs2_smallState extends State<ContactUs2_small> { ...@@ -232,10 +234,10 @@ class _ContactUs2_smallState extends State<ContactUs2_small> {
style: Btn_Submit(), style: Btn_Submit(),
onPressed: () async { onPressed: () async {
if (_formKey.currentState!.validate()) { if (_formKey.currentState!.validate()) {
final response = await SendEmail( final response = await savecontact(
nameController.value.text, nameController.value.text,
phoneController.value.text,
emailController.value.text, emailController.value.text,
phoneController.value.text,
messageController.value.text); messageController.value.text);
ScaffoldMessenger.of(context).showSnackBar( ScaffoldMessenger.of(context).showSnackBar(
response == 200 response == 200
...@@ -267,30 +269,6 @@ class _ContactUs2_smallState extends State<ContactUs2_small> { ...@@ -267,30 +269,6 @@ class _ContactUs2_smallState extends State<ContactUs2_small> {
), ),
); );
} }
Future SendEmail(
String name, String phone, String email, String message) async {
final url = Uri.parse('https://api.emailjs.com/api/v1.0/email/send');
const serviceId = 'service_wava70j';
const templateId = 'template_koc73cj';
const userId = 'h4BmDnyWlm3OziBDx';
final response = await http.post(url,
headers: {
'Content-Type': 'application/json'
}, //This line makes sure it works for all platforms.
body: json.encode({
'service_id': serviceId,
'template_id': templateId,
'user_id': userId,
'template_params': {
'from_name': name,
'from_phone': phone,
'to_email': email,
'message': message
}
}));
return response.statusCode;
}
} }
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:medapp_eksad/widget/button_color.dart';
class SmallHome4 extends StatelessWidget { class SmallHome4 extends StatelessWidget {
const SmallHome4({Key? key}) : super(key: key); const SmallHome4({Key? key}) : super(key: key);
...@@ -8,21 +7,28 @@ class SmallHome4 extends StatelessWidget { ...@@ -8,21 +7,28 @@ class SmallHome4 extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
var ScreenSize = MediaQuery.of(context).size; var ScreenSize = MediaQuery.of(context).size;
return Container( return Container(
padding: EdgeInsets.symmetric(horizontal: 15), padding: EdgeInsets.symmetric(horizontal: 10, vertical: 20),
width: ScreenSize.width, width: ScreenSize.width,
height: ScreenSize.height * 1.5, height: ScreenSize.height * 1.2,
color: Colors.white, color: Colors.white,
child: Container( child: Container(
width: ScreenSize.width * 0.20, width: ScreenSize.width * 0.20,
height: ScreenSize.height * 0.75, height: ScreenSize.height * 1,
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(20), borderRadius: BorderRadius.circular(20),
//color: Color.fromARGB(200, 9, 47, 171), color: Color.fromARGB(200, 9, 47, 171),
color: Colors.blue[900], gradient: LinearGradient(
colors: <Color>[
Color(0xff137fc2),
Color(0xff3958d5),
Color(0xff184b80),
],
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
),
boxShadow: [ boxShadow: [
BoxShadow( BoxShadow(
color: color: const Color.fromARGB(255, 10, 116, 255).withAlpha(60),
const Color.fromARGB(255, 10, 116, 255).withAlpha(60),
blurRadius: 15.0, blurRadius: 15.0,
spreadRadius: 10.0, spreadRadius: 10.0,
offset: const Offset( offset: const Offset(
...@@ -32,119 +38,65 @@ class SmallHome4 extends StatelessWidget { ...@@ -32,119 +38,65 @@ class SmallHome4 extends StatelessWidget {
), ),
], ],
), ),
child: Container( child: Padding(
child: Row( padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 15),
mainAxisAlignment: MainAxisAlignment.center, child: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
Container( Container(
width: ScreenSize.width * 0.36, height: ScreenSize.height * 0.1,
height: ScreenSize.height * 0.69, width: ScreenSize.width,
color: Colors.blue[900], child: Text(
child: Container( "Mobile & Web Apps",
alignment: Alignment.topLeft, style: TextStyle(color: Colors.white, fontSize: 36),
padding: EdgeInsets.all(30), textAlign: TextAlign.center,
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
SizedBox(height: 40,),
Row(
children: [
Text("Mobile & Web Apps",
style: TextStyle(
color: Colors.white,
fontSize: 34
),
textAlign: TextAlign.left,
),
],
),
SizedBox(height: 30,),
Row(
children: [
Container(
height: 100,
width: ScreenSize.width *0.30,
child: Text(
"MedApps menyediakan Aplikasi Mobile dan juga website yang bisa anda kunjungi",
style: TextStyle(
fontSize: 18,
color: Colors.white
),
)
),
],
),
// SizedBox(height: 10,),
Row(
children: [
Container(
height : 50,
width : 200,
child: ElevatedButton(
onPressed: (){},
style: ElevatedButton.styleFrom(
primary: Colors.blue[900],
onSurface: Colors.white,
side: BorderSide(
color: Colors.white
),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(30)
),
),
),
child: Text(
"LEARN MORE",
style: TextStyle(
fontSize: 18,
letterSpacing: 2
),
),
),
// child: ElevatedButton(
// onPressed: (){},
// style: DefaultColors(),
// // ElevatedButton.styleFrom(
// // primary: Colors.blue,
// // fixedSize: Size(170, 85),
// // onPrimary: Colors.white,
// // shape: RoundedRectangleBorder(
// // borderRadius: BorderRadius.all(Radius.circular(30),
// // )
// // )
// // ),
// child: Text("LEARN MORE",
// style: TextStyle(
// fontSize: 18,
// letterSpacing: 2
// ),
// ),
// ),
),
],
),
],
),
), ),
), ),
SizedBox(width: 40,),
Container( Container(
width: ScreenSize.width * 0.3, width: ScreenSize.width * 0.85,
height: ScreenSize.height * 0.69, height: ScreenSize.height * 0.6,
// color: Colors.white, // color: Colors.white,
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: Colors.white,
image: DecorationImage( image: DecorationImage(
image: AssetImage('assets/images/medaps3.png') image: AssetImage('assets/images/medaps3.png'),
fit: BoxFit.fill),
borderRadius: BorderRadius.circular(20)),
),
Container(
height: ScreenSize.height * 0.13,
width: ScreenSize.width,
child: Text(
"MedApps menyediakan Aplikasi Mobile dan juga website yang bisa anda kunjungi",
style: TextStyle(fontSize: 20, color: Colors.white),
textAlign: TextAlign.justify,
)),
Center(
child: Container(
height: 50,
width: 200,
child: ElevatedButton(
onPressed: () {},
style: ElevatedButton.styleFrom(
primary: Colors.blue[900],
onSurface: Colors.white,
side: BorderSide(color: Colors.white),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(30)),
),
), ),
borderRadius: BorderRadius.circular(20) child: Text(
"LEARN MORE",
style: TextStyle(fontSize: 18, letterSpacing: 2),
),
),
), ),
), ),
], ],
), ),
), ),
), ),
); );
} }
} }
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:show_up_animation/show_up_animation.dart';
class SmallOurSolution extends StatefulWidget {
const SmallOurSolution({Key? key}) : super(key: key);
@override
State<SmallOurSolution> createState() => _SmallOurSolutionState();
}
class _SmallOurSolutionState extends State<SmallOurSolution> {
@override
Widget build(BuildContext context) {
var screenSize = MediaQuery.of(context).size;
return Stack(
children: [
Container(
width: screenSize.width,
height: screenSize.height * 0.8,
decoration: const BoxDecoration(
image: DecorationImage(
image: AssetImage(
"assets/images/solution.jpg",
),
alignment: Alignment.topCenter,
fit: BoxFit.cover),
),
),
const SizedBox(
height: 10,
),
SizedBox(
width: screenSize.width,
height: screenSize.height * 0.5,
// ),
),
Container(
padding: EdgeInsets.symmetric(horizontal: screenSize.height*0.1),
child: Center(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
const SizedBox(height: 70),
Container(
height: screenSize.height * 0.2,
child: ShowUpAnimation(
delayStart: const Duration(seconds: 1),
curve: Curves.bounceIn,
direction: Direction.horizontal,
offset: -0.2,
child: Text(
'Find & Get the Best Talent',
style: GoogleFonts.poppins(
fontSize: 34,
fontWeight: FontWeight.bold,
color: Colors.black87),
textAlign: TextAlign.center,
),
),
),
const SizedBox(height: 5),
Container(
width: screenSize.width * 0.5,
height: screenSize.height * 0.30,
child: ShowUpAnimation(
delayStart: const Duration(seconds: 1),
curve: Curves.decelerate,
direction: Direction.horizontal,
child: Text(
'Register for free now, find our Best Talent, and enjoy our unlimited hires at a low cost',
style: GoogleFonts.poppins(
fontSize: 18,
letterSpacing: 1.8,
height: 1.4,
fontWeight: FontWeight.bold,
color: Colors.black87),
textAlign: TextAlign.center,
),
),
),
const SizedBox(height: 5),
Container(
height: 50,
child: ShowUpAnimation(
delayStart: const Duration(seconds: 1),
curve: Curves.bounceIn,
direction: Direction.horizontal,
offset: -0.2,
child: ElevatedButton(
onPressed: () {
Navigator.pushNamed(context, '/register');
},
style: ElevatedButton.styleFrom(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10),
),
primary: const Color.fromARGB(255, 48, 104, 170),
// shape: MaterialStateProperty.all(RoundedRectangleBorder(borderRadius: BorderRadius.circular(30.0))),
),
child: const Text(
'FREE DEMO',
style: TextStyle(
fontSize: 19,
fontWeight: FontWeight.w500,
letterSpacing: 1.1,
color: Colors.white),
),
),
),
),
const SizedBox(
height: 10,
)
],
),
),
),
],
);
}
}
import 'package:flutter/material.dart';
import 'package:medapp_eksad/widget/small_image_slide.dart';
class SmallOurSolution2 extends StatefulWidget {
const SmallOurSolution2({Key? key}) : super(key: key);
@override
State<SmallOurSolution2> createState() => _SmallOurSolution2State();
}
class _SmallOurSolution2State extends State<SmallOurSolution2> {
@override
Widget build(BuildContext context) {
var screenSize = MediaQuery.of(context).size;
return Container(
width: screenSize.width,
height: screenSize.height*0.55,
padding: EdgeInsets.symmetric( vertical: screenSize.height*0.05),
child: SizedBox(
width: screenSize.width,
height: screenSize.height*0.5,
child: SmallVerticalSlider()
),
);
}
}
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class DrawerMeddApp extends StatelessWidget { class DrawerMedApp extends StatelessWidget {
const DrawerMeddApp({Key? key}) : super(key: key); const DrawerMedApp({Key? key}) : super(key: key);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
...@@ -23,21 +23,21 @@ class DrawerMeddApp extends StatelessWidget { ...@@ -23,21 +23,21 @@ class DrawerMeddApp extends StatelessWidget {
), ),
child: Column( child: Column(
children: [ children: [
SizedBox(height: 50,), const SizedBox(height: 50,),
ListTile( ListTile(
leading: Icon(Icons.home), leading: const Icon(Icons.home),
title: Text('Home',style: TextStyle(fontWeight: FontWeight.w500),), title: const Text('Home',style: TextStyle(fontWeight: FontWeight.w500),),
onTap: () => Navigator.pushNamed(context, '/') , onTap: () => Navigator.pushNamed(context, '/') ,
), ),
ListTile( ListTile(
leading: Icon(Icons.people), leading: const Icon(Icons.people),
title: Text('About Us',style: TextStyle(fontWeight: FontWeight.w500),), title: const Text('About Us',style: TextStyle(fontWeight: FontWeight.w500),),
onTap: () =>Navigator.pushNamed(context, '/about') , onTap: () =>Navigator.pushNamed(context, '/about') ,
), ),
ListTile( ListTile(
leading: Icon(Icons.settings_applications), leading: const Icon(Icons.settings_applications),
title: Text('Our Solution',style: TextStyle(fontWeight: FontWeight.w500),), title: const Text('Our Solution',style: TextStyle(fontWeight: FontWeight.w500),),
onTap: () =>Navigator.pushNamed(context, '/solutions') , onTap: () =>Navigator.pushNamed(context, '/solutions') ,
), ),
// ListTile( // ListTile(
...@@ -46,10 +46,19 @@ class DrawerMeddApp extends StatelessWidget { ...@@ -46,10 +46,19 @@ class DrawerMeddApp extends StatelessWidget {
// onTap: () => Navigator.pushNamed(context, '/career') , // onTap: () => Navigator.pushNamed(context, '/career') ,
// ), // ),
ListTile( ListTile(
leading: Icon(Icons.contact_phone), leading: const Icon(Icons.contact_phone),
title: Text('Contact Us',style: TextStyle(fontWeight: FontWeight.w500),), title: const Text('Contact Us',style: TextStyle(fontWeight: FontWeight.w500),),
onTap: () => Navigator.pushNamed(context, '/contact') , onTap: () => Navigator.pushNamed(context, '/contact') ,
), ),
const SizedBox(height: 60,),
ListTile(
title: const Text('Login',style: TextStyle(fontWeight: FontWeight.w500),),
onTap: () => Navigator.pushNamed(context, '/login') ,
),
ListTile(
title: const Text('Register',style: TextStyle(fontWeight: FontWeight.w500),),
onTap: () => Navigator.pushNamed(context, '/register') ,
),
], ],
), ),
), ),
......
import 'package:flutter/material.dart';
import 'package:carousel_slider/carousel_slider.dart';
final List<String> imgList = [
'assets/images/solution1.jpg',
'assets/images/solution2.jpg',
];
final List<Widget> imageSliders = imgList
.map((item) => Container(
child: Container(
margin: const EdgeInsets.all(2.0),
child: ClipRRect(
borderRadius: const BorderRadius.all(Radius.circular(1.0)),
child: Stack(
children: <Widget> [
Image.asset(
item,
fit: BoxFit.fill,
width: 720,
),
Positioned(
bottom: 0.0,
left: 0.0,
right: 0.0,
child: Container(
decoration: const BoxDecoration(
gradient: LinearGradient(
colors: [
Color.fromARGB(200, 0, 0, 0),
Color.fromARGB(0, 0, 0, 0)
],
begin: Alignment.bottomCenter,
end: Alignment.topCenter,
),
),
// padding: const EdgeInsets.symmetric(
// vertical: 10.0, horizontal: 20.0),
// child: const Text(
// 'Bootcamp',
// //'No. ${imgList.indexOf(item)} image',
// style: TextStyle(
// color: Colors.white,
// fontSize: 20.0,
// fontWeight: FontWeight.bold,
// ),
// ),
),
),
],
)),
),
))
.toList();
final CarouselController _controller = CarouselController();
@override
void initState() {
initState();
}
class SmallVerticalSlider extends StatelessWidget {
@override
Widget build(BuildContext context) {
var screenSize = MediaQuery.of(context).size;
return Stack(
children: [
Center(
child: Container(
width: screenSize.width,
child: CarouselSlider(
carouselController: _controller,
options: CarouselOptions(
aspectRatio: 2.0,
enlargeCenterPage: true,
scrollDirection: Axis.horizontal,
autoPlay: true,
),
items: imageSliders,
),
),
),
Center(
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Flexible(
child: Container(
width: 45,
child: ElevatedButton(
onPressed: () => _controller.previousPage(),
style: ElevatedButton.styleFrom(primary: Colors.grey),
child: const Icon(Icons.arrow_back_ios_new_outlined),
),
),
),
Flexible(
child: Container(
width: 45,
child: ElevatedButton(
onPressed: () => _controller.nextPage(),
style: ElevatedButton.styleFrom(primary: Colors.grey),
child: const Icon(Icons.arrow_forward_ios_outlined),
),
),
),
],
),
)
],
);
}
}
...@@ -8,6 +8,13 @@ packages: ...@@ -8,6 +8,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.8.2" version: "2.8.2"
badges:
dependency: transitive
description:
name: badges
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.3"
boolean_selector: boolean_selector:
dependency: transitive dependency: transitive
description: description:
...@@ -78,6 +85,13 @@ packages: ...@@ -78,6 +85,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "5.0.2" version: "5.0.2"
easy_sidemenu:
dependency: "direct main"
description:
name: easy_sidemenu
url: "https://pub.dartlang.org"
source: hosted
version: "0.3.1"
fake_async: fake_async:
dependency: transitive dependency: transitive
description: description:
...@@ -289,13 +303,6 @@ packages: ...@@ -289,13 +303,6 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.0" version: "2.0.0"
sidebarx:
dependency: "direct main"
description:
name: sidebarx
url: "https://pub.dartlang.org"
source: hosted
version: "0.7.0"
simple_animations: simple_animations:
dependency: transitive dependency: transitive
description: description:
......
...@@ -35,7 +35,7 @@ dependencies: ...@@ -35,7 +35,7 @@ dependencies:
font_awesome_flutter: ^10.1.0 font_awesome_flutter: ^10.1.0
intl: ^0.17.0 intl: ^0.17.0
dropdown_search: ^5.0.2 dropdown_search: ^5.0.2
sidebarx: ^0.7.0 easy_sidemenu: ^0.3.1
flutter_web_plugins: flutter_web_plugins:
sdk: flutter sdk: flutter
...@@ -77,6 +77,7 @@ flutter: ...@@ -77,6 +77,7 @@ flutter:
- assets/logo/ - assets/logo/
- assets/images/ - assets/images/
# To add assets to your application, add an assets section, like this: # To add assets to your application, add an assets section, like this:
# assets: # assets:
# - images/a_dot_burr.jpeg # - images/a_dot_burr.jpeg
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment