0% found this document useful (0 votes)
11 views

Project Guidelines 3

Uploaded by

simosimogildas
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views

Project Guidelines 3

Uploaded by

simosimogildas
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

Table of Contents

PROJECTS....................................................................................................................................................... 2
1. Online Banking System (with ATM) ................................................................................................... 2
2. Package Tracking Platform ................................................................................................................ 2
3. Online Chess Platform ....................................................................................................................... 3
4. Virtual log book and course hours tracking ...................................................................................... 3
5. Video Projector Management (case of IAI) ....................................................................................... 4
6. Tailor’s measurements app ............................................................................................................... 4
7. Past exams questions and answers ................................................................................................... 5
8. WeFit, an online fitness platform ...................................................................................................... 5
9. A flight management system ............................................................................................................ 6
10. A library management system ...................................................................................................... 6
11. A blog platform ............................................................................................................................. 6
12. A location tracking system ............................................................................................................ 7
GROUPS AND PROJECT ASSIGNMENTS ......................................................................................................... 7
REQUIREMENTS AND GUIDELINES .............................................................................................................. 10
PROJECT LEVELS OF COMPLETION AND EVALUATION METRICS ................................................................. 11
PROJECTS
There are a wide variety of projects. I created some of these projects from real-world scenarios and
problems faced by us at AICS and schools in general. If you do good enough work on them, you can use it
for your June defense. That being said, below is the list of projects.

1. Online Banking System (with ATM)


Create an online banking system for a single bank, AICSCash, with Django. Here is how the
system functions

• Employees interact with the system. All the employees are allowed to register clients, and
register clients’ transactions (i.e. deposit or withdrawal)
• Clients make transactions in the system. The transactions are either a deposit or withdrawal.
• Each transaction can have 0 or more documents attached to it (i.e. the ID cards, forms, etc.)
• Deposits can only be made at the bank through an employee.
• Withdrawals can be made either from the bank or using the ATM.
• For each transaction carried out, we need to know the time of the transaction and the
employee that registered it (if it was registered by an employee).
• The clients have cards through which they can make withdrawals at the ATM. A client can
have 0 or more cards but a card belongs to only one client.
• When a transaction is done using the ATM, we want to know
o Which ATM it was carried out at
o The card that issued the transaction
o The amount withdrawn

Technical requirements

• Use a Postgres database


• Seeing as this is a banking app, we need to ensure availability of the data, implement a
regular backup of the database.
• BONUS: perform action logging i.e. every database action carried out in the application is
recorded as well as the user that carried out the action (check out https://django-simple-
history.readthedocs.io/en/latest/)

2. Package Tracking Platform


This app is supposed to allow a shipping company (and its customers) to keep track of the goods
that are to be delivered. Here’s how it works:

• A client ships one or more packages and a package is shipped by only one client. The
shipping could simply be the client ordering something online and asking to have it
delivered to an address.
• We need to keep track of the package’s current location. When the order is placed, the
package is initially at the store where it is ordered from.
• The package is then moved from one warehouse to another until it gets to the destination.
• Anytime the package arrives at a warehouse, an employee logs (using the application) that
the package has arrived at the warehouse.
• We need to keep track of which employee scanned which package
• We also need to keep track of the different warehouses a package has passed through
• When a client places an order, they are given a tracking id which they use to track their
packages in real-time.
• When they open the client portal of the app, they see a map and a search box where they
paste their tracking id.
• Once the tracking id is pasted, the map shows them the current location of their package,
when it arrived there and also the different other warehouses it has been to.
• Look into Mapbox.

3. Online Chess Platform


Create a web app that allows its users to play against each other in real-time.

• A user/guest can create one or more games and a game is created by a single user/guest. If the
game is created by a guest.
• A user can invite another user to play the game either through the application or by sending
them an invitation link.
• Users and guests can play games alike but only users can get invited. If you want to play as a
guest, you need to use an invitation link sent to you by the creator.
• For each game, we need to store
o The duration of the game
o The winner
o The moves made during the game
• Each game can also be watched while the players are playing using a link to watch the game.
o Each time a move is made, the player’s opponent as well as the spectators see the move
that has been made.
o We don’t need to keep track of who viewed a particular game
• The website also permits the downloading of games played in PGN format.
• Look into socketio for Python and JavaScript.

4. Virtual log book and course hours tracking


A web app that allows its users to keep track of the different topics taught during courses and
the number of hours of courses dispersed.

• The app is made up of simple users and class delegates/prefects.


• The users belong to a particular class, same as the class delegates/prefects.
• The delegate/prefect is in charge of filling the logbook
• A logbook entry is created for a particular subject, on a particular day, during a particular
period (i.e. start time – end time) and a particular teacher.
• The class prefect is also in charge of logging the number of hours taught by a teacher on a
particular course. This can be done manually but should also be done automatically when a
logbook entry is filled. (think about overriding the save method of the logbook entry model)
• The logbook entry can be a text and can have 1 or more files attached to it. These files can
be anything ranging from images to audio files.
• When the regular users log in to the application, they see a list of courses and clicking on a
particular course displays all the logbook entries for that course.

5. Video Projector Management (case of IAI)


Implement a web app that allows users to keep track of which employees took which equipment
and when the equipment was returned.

• The application’s users are the stock managers of the organization.


• Anytime an employee wants a projector, they go to the stock manager and sign out the
projector.
• A projector can have 1 or more other devices attached to it (e.g. HDMI cable, remote etc)
o Video 1 can have an HDMI cable or a remote or may have neither of them
o Video 1 cannot have a keyboard for example, as keyboard is not one of the device
categories
• When the projector is returned, the stock manager registers it, as well as checking whether
or not the attached devices have been returned too.
• We need to keep track of
o The withdrawals made i.e. who took which projector? When? Which other devices did
they take along with the projector?
o The deposits made i.e. when was the projector returned? Which of the attached devices
were returned with it?

6. Tailor’s measurements app


Build a web app for tailors/seamstresses that allows them to register the measurements of their
customers.

• The app can be used by one or more tailors.


• Each tailor has 0 or more customers and, for simplicity, each customer belongs to one tailor.
• Each customer can have 1 or more measurements.
• A measurement has, but is not limited to, the following; sleeve length, shoulder width, chest
size, waist size, etc. as well as the date at which it was taken.
• A measurement can also be taken for a particular outfit.
• The outfit can have 1 or more images and a due date
o The customer sends images of what they want and the tailor/seamstress takes
measurements for that outfit.
• We need to be able to log an outfit as completed as well as keep track of the date at which it was
completed
• We need to keep track of the different customers, their outfits and measurements.

7. Past exams questions and answers


A web app that allows its users to upload questions to past exams and also to answer them.

• An exam can belong to 0 or 1 school, a school can have 0 or more exams


• An exam is uploaded by a user.
• Other users can upvote (like) an exam
• A user can submit an answer to 0 or more exams, an exam can have 0 or more answers
submitted by users.
• Users can also upvote answers (think like Stack Overflow)
• An exam or an answer can have 1 or more files attached to it
• Users can download exam and answer files (if the exam/answer has more than one file, there is
an option to download all the files as a zip file)
• We are supposed to keep track of
o The different exams posted on the platform and the people that posted them
o The number of upvotes and who upvoted the exam
o The different responses to the exam

8. WeFit, an online fitness platform


WeFit is here to revolutionize fitness by incorporating a social aspect to it. It allows users to not only
benefit from a wide variety of workouts but also to post images/videos of their progress and to
like/comment others’ posts.

• It has a wide variety of workouts which fall into 1 or more of the following categories
o Upper body
o Lower body
o Core
o Full body
o HIIT (High Intensity Interval Training)
• A category can have one or more workouts under it, a workout can belong to one or more
categories
• Each workout has 1 or more exercises, an exercise can belong to 1 or more workouts.
• Each exercise under a workout is either timed (e.g. pushups for 45 seconds) or has a number of
repetitions (e.g. pushups for 45 seconds)
• Each exercise has a short video demonstrating it (about 3 seconds).
• Users can do one or more workouts, a workout can be done by 0 or more users
• We need to keep track of the amount of time it took a user to complete a workout.
• We also need to keep track of some information about users such as their weight, height, age
and sex.
• We’ll put the social media aspect as perspectives.

9. A flight management system


Build a web app that allows its users to manage flights and sell tickets. The app is meant to be used by a
single airline.

• The allows users to add, remove, view or update a flight


• A flight has its days that it leaves
• A class can have first class or economy tickets. Each of these ticket categories has a limited
number of seats.
• Each of the ticket categories has a price too.
• Users register ticket purchases with the app. We need to keep track of the person that
purchased the ticket.
• A person can purchase 1 or more tickets, a ticket is bought by only one person.
• A flight has a destination and can have 0 or more stops on the way. If a flight has stops, we need
to keep track of them.
• A flight has a departure time (both first class and economy) and a duration.
• We also need to keep track of exactly when the flight leaves the airport and when it reaches its
destination.
• If the flight has stops, we also need to keep track of when it arrived and the stop and when it left
the stop.

10. A library management system


A web app that allows its users to manage a library.

• Users create, read, update or delete (CRUD) books


• A book can have 1 or more copies.
• Users can loan books out to people. When a person borrows a book, the user has to specify
when the book has to be returned.
• We need to keep track of when a particular book is borrowed and when it is returned.

11. A blog platform


A web app that allows users to make blog posts, view, and like/comment other blog posts.

• User registration/login
• Blog posting (a blog is made up of only text). A user can also choose to edit or delete their own
post after creating it.
• Blog comments, users can comment under 0 or more blogs, a blog can have 0 or more
comments.
• A user can like 0 or more blogs, a blog can have 0 or more likes.
• For likes/comments, we need to know who liked/commented a blog and when.

12. A location tracking system


Ever been in a taxi in a new place and came across a beautiful place you wanted to visit sometime in the
future? I have, but unfortunately, I never get around to visiting it because I can’t remember exactly
where it is. This web app is going to fix that.

The web app allows its users to

• Save locations that they come across. The app is supposed to automatically get the current
location of the user at the time of saving the location. The user can also submit an image of the
place along with a name and a category (e.g. bar/restaurant, hotel, clothes shop, etc.)
• The users can then view the locations of the places they have visited on a map along with the
names they saved. They can also search for a particular place by name or filter by location (e.g.
Nkolbisson, Awae, etc.)
• A user can modify the location of a place they have saved along with its details.

GROUPS AND PROJECT ASSIGNMENTS


Group Number Project Group Members
1 #2 Package Tracking Platform 1. Chayie Lucrese (Head)
(17)
2. Minsili Minette Diane
(17)
3. Malle Steve Lobe (0)
4. Mbengam Raoul (0)
5. Muma Peace (0)
6. Manfouo Stachis (0)
7. Temdie Alban (0)
2 #9 A flight management system 1. Simo Simo Gildas(Head)
(17.5)
2. Wanki Jefferson (13)
3. Bagari Arouna (0)
4. Sonsta Temfack Eunice
(15)
5. Zinga Nomo Aristide (0)
6. Ngouetso Sandra
Norvelle (08)
7. Teuma Sadie Dorcel
Kennedy (0)
3 #6 Tailor’s measurement app 1. Yvan Longo (Head)
2. Bill Nelson
3. Ndeh Herman
4. Essono Jordan
5. Mpaka Daniel
6. Dzelamonyuy Honore
7. Wayanne Andy Mael

4 #8 WeFit, an online fitness 1. Nzali Claudia


platform Grace(Head) (17)
2. Ngandeu Brenda Paola
(10.5)
3. Nkwetchou Lamago
Rachel (13)
4. Ngouh Moumbain
Youssoufa (11)
5. Lonla Tchinda (14)
6. Mendomo Sazang Ines
(10)
7. Eyoum Jean Jacques
(14)

5 #5 Video projector management 1. Momo Godi Yvan(Head)


(17.5)
2. Ndongue Kessy (0)
3. Tene Njoumesi (12)
4. Ndongo Junior
5. Fosso Stephane (08)
6. Oyoam Limaleba
Lafortune (10)
7. Emmanuel Akuma (12)
6 #7 Past exams questions and 1. Dzeufack Nouboudem
answers Theresa (head) (17)
2. Epah Millen (14)
3. Cheusopkeng Miafo (0)
4. Njodzela Brice (16)
5. Adouble Jessica (13)
6. Ndjie Ndjie Raymond
(15)
7. Menkahe Elise
Emmanuella (17)

7 #4 Virtual log book and course 1. Tsembom Percy Linkwe


hours tracking (Head) (20)
2. Tsobgny Tiomo Euloge
Cantin
3. Wemayi Temouafo
Evrad
4. Kamga Tadie Thierry
5. Fouda Bikoun
6. Gapessie Kakmeni
Djongue
7. Efang Barry Anong

8 #10 A Library management 1. Meugang Kamgang


system Kedy Tania
9 #11 A blog platform 1. Ella Samuel Cedric
10 #1 Online Banking system with 1. Kameni Sepdeu Ange
ATM (Head) (20)
2. Ndjanda Aurelie (0)
3. Donfack Tonfack
Christian (17)
4. Ngoumeta Tchinda
Morelle (15)
5. Kouete Hoza (0)
6. Guientsing Roger Lionel
(0)
7. Omboli Hans (0)
REQUIREMENTS AND GUIDELINES
• A class diagram is expected for each project. The class diagram will be used to evaluate the
models created in the app.
• Each group must create at least one Django app in their project.
• If a group has more than one app in their Django project, then they should have a class diagram
for each app, showing how the models are structured in each.
• The projects should be stored on GitHub, each group should use a virtual environment and
generate a requirements.txt file for their project.
o Please take this point seriously, if I run your project and I see ModuleNotFoundError
anywhere, I am not going to bother arranging it.
• The virtual environment SHOULD NOT BE ON THE GITHUB REPOSITORY. Make sure to include it
in the .gitignore file
• If there are particular business rules that cannot be represented using the class diagram, then
there should be tests for that included e.g.
o If we say after every logbook entry, we should automatically update the number of hours
taught for a particular course in a particular class, then there should be a test that tests
the models for this behavior.
• There should be a file called postman_tests in the repository that has all the endpoint tests in it.
Your endpoints will be evaluated using these tests.
• If a particular endpoint has not been tested on Postman, it will be considered non-existent.
• If a particular test fails (i.e. 500 error) then the endpoint (view) is not considered.
• Each group should use Git and GitHub, each group member will be graded individually based on
o The amount of work they have contributed to the project
• Each group has to include a report in their repositories that shows the class diagram and
provides a step-by-step guide to using any packages that require some extra setup.
• The GitHub repositories must be PUBLIC, if the repository is private, it is not going to be
considered.
• Use of git branches is encouraged but not necessary.
• If I realize that only a handful of members did all the work, all those who did nothing will have
no mark. Django has a lot of different parts, there should be something for everyone to do.
• Groups get extra points for performing database backup and restore (this can even be a task for
a single person)
o The database backup/restore should be performed as a Django management command
(e.g. python manage.py backup_db and python manage.py restore_db <file>)
• Each group will use a Postgres database, and include an SQL file that contains the different data
in the database. I will use this file to restore the database and test the application
• Each group must have at least one superuser with the username `prince` and password `your
highness`.
• The deadline for the projects is 31st May 2023.
PROJECT LEVELS OF COMPLETION AND EVALUATION METRICS
The marks can be lower, much lower, than the maximum.

The tests specified below refer to the automated tests that you will write in the app. Postman tests are
COMPULSORY, if there are no Postman tests I will consider the work as not done.

Level of completion Description Maximum mark


Tier 1 Simple Django app, no tests, no 13
HTML/CSS & JS, just the admin
site
Tier 2 Django app with HTML/CSS & JS, 15
no tests
Tier 3 Django app, HTML/CSS & JS, 16
tests,
Tier 4 Django app, HTML/CSS & JS, 17.5
tests, admin site customization
Tier 5 Django app, HTML/CSS & JS, 20
tests, admin site customization
and a REST API

NB: for the groups with just one member, their maximum mark for Tiers 1, 2, 3, 4, and 5 are 13, 16, 17,
18.5, and 20 respectively.

You might also like