Skip to content

Commit

Permalink
Implemented the Info Page for OSoC and Update the Timeline
Browse files Browse the repository at this point in the history
  • Loading branch information
RishavKumarSinha committed Jun 18, 2024
1 parent 8b46de0 commit 1b31ffe
Show file tree
Hide file tree
Showing 3 changed files with 147 additions and 5 deletions.
6 changes: 6 additions & 0 deletions lib/opso_timeline.dart
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,12 @@ class OpsoTimeLineScreen extends StatelessWidget {
'startDate': DateTime.utc(2024, 3, 31),
'endDate': DateTime.utc(2024, 4, 15),
},
{
'description':
"Open Summer of Code\nApplication Period - 1/04/2024 to 29/04/2024",
'startDate': DateTime.utc(2024, 4, 1),
'endDate': DateTime.utc(2024, 4, 29),
},
{
'description':
"MLH Fellowship(Fall Term)\nApplication Period - 15/04/2024 to 31/05/2024",
Expand Down
16 changes: 11 additions & 5 deletions lib/programs screen/open_summer_of_code.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,9 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:opso/modals/osoc_modal.dart';
import 'package:opso/modals/sob_project_modal.dart';
import 'package:opso/programs_info_pages/sob_info.dart';
import 'package:opso/widgets/osoc_widget.dart';
import 'package:opso/widgets/sob_project_widget.dart';
import 'package:opso/widgets/year_button.dart';

import 'package:opso/programs_info_pages/osoc_info.dart';
import '../modals/book_mark_model.dart';
import '../widgets/SearchandFilterWidget.dart';

Expand Down Expand Up @@ -128,7 +125,7 @@ class _OpenSummerOfCodeState extends State<OpenSummerOfCode> {
onRefresh: _refresh,
child: Scaffold(
appBar:
AppBar(title: const Text('Summer of Bitcoin'), actions: <Widget>[
AppBar(title: const Text('Open Summer of Code'), actions: <Widget>[
IconButton(
icon: (isBookmarked)
? const Icon(Icons.bookmark_add_rounded)
Expand All @@ -154,6 +151,15 @@ class _OpenSummerOfCodeState extends State<OpenSummerOfCode> {
}
},
),
IconButton(
icon: const Icon(Icons.info_outline),
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => const OSOCInfo()),
);
},
),
]),
body: FutureBuilder<void>(
future: getProjectFunction,
Expand Down
130 changes: 130 additions & 0 deletions lib/programs_info_pages/osoc_info.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
import 'package:flutter/material.dart';

class OSOCInfo extends StatelessWidget {
const OSOCInfo({super.key});

@override
Widget build(BuildContext context) {

return Scaffold(
appBar: AppBar(
title: const Text('Project Information'),
),
body: Padding(
padding: const EdgeInsets.all(10.0),
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'Open Summer of Code',
style: Theme.of(context).textTheme.titleLarge,
),
const SizedBox(height: 20),
_buildOutlinedBox(
context,
title: 'Overview',
content: 'A 4-week summer programme in July, that provides Belgian based students the training, network and support necessary to transform open innovation projects into powerful real-world services.',
),
const SizedBox(height: 20),
_buildOutlinedBox(
context,
title: 'When & Where?',
content: '1 July — 25 July From Monday to Thursday, 9AM to 5PM. On Mondays and Thursdays, we work in Brussels, on Tuesdays and Wednesdays we work remotely. You dont have to work on Fridays and weekends! You are off during holidays, but still paid!',
),
const SizedBox(height: 20),
_buildOutlinedBox(
context,
title: 'Can I participate in OSOC?',
content: 'Yes, if you meet the following requirements.\n'
'* For international students, check the next question\n\n'
'First of all, you’re a student eligible to work under a student contract for 16 full days (128 hours).\n'
'Secondly, you study or have experience in front- or back-end development, design (UX, graphic), communication or business modelling.\n'
'Thirdly, you should be able to express yourself in English.\n'
'Do you meet these requirements? Congratulations, you could be an OSOC student!',
),
const SizedBox(height: 20),
_buildOutlinedBox(
context,
title: 'Can I participate if I am not a Belgian citizen?',
content: 'Students from an EEA member state or from Switzerland are entitled to work in Belgium throughout the year under the same terms as Belgian students. EAA member state means any of the member states of the European Union, Iceland, Liechtenstein, and Norway.\n\n'
'Are you from a country that is not included in the above list? Then you may work in Belgium if you:\n'
'are registered in education with full curriculum in Belgium\n'
'have a valid residence permit\n'
'You must be able to work from 9 to 5 in the GMT+2 time zone.',
),
const SizedBox(height: 20),
Text(
'Prizes and Rewards',
style: Theme.of(context).textTheme.headlineSmall,
),
const SizedBox(height: 10),
Center(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
children: [
Padding(
padding: const EdgeInsets.symmetric(vertical: 8.0),
child: _buildPrizeBox(
context,
'Get paid for your work! Even on holidays!',
),
),
Padding(
padding: const EdgeInsets.symmetric(vertical: 8.0),
child: _buildPrizeBox(
context,
'Certificate of participation and a reference letter from the OSOC team.',
),
),
],
),
),
),
],
),
),
),
);
}

Widget _buildOutlinedBox(BuildContext context, {required String title, required String content}) {
return Container(
padding: const EdgeInsets.all(10.0),
decoration: BoxDecoration(
border: Border.all(color: Colors.orange, width: 1.0),
borderRadius: BorderRadius.circular(8.0),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
title,
style: Theme.of(context).textTheme.headlineSmall,
),
const SizedBox(height: 10),
Text(
content,
style: Theme.of(context).textTheme.bodyLarge,
),
],
),
);
}

Widget _buildPrizeBox(BuildContext context, String description) {
return Container(
padding: const EdgeInsets.all(10.0),
decoration: BoxDecoration(
border: Border.all(color: Colors.orange, width: 1.0),
borderRadius: BorderRadius.circular(8),
),
child: Text(
description,
textAlign: TextAlign.center,
style: Theme.of(context).textTheme.bodyLarge,
),
);
}
}

0 comments on commit 1b31ffe

Please sign in to comment.